目录
1、创建app
(1)启动虚拟环境
activate djangopath
(2)切到django项目的目录
这一步操作需要命令行在有manage.py的目录里
python manage.py startapp artical
(3)app的结构
artical中有这些文件
- __init__.py包文件
- Admin.py后台管理文件
- App.py应用管理文件
- Moderls.py模型文件
- Test.py单元测试文件
- Views.py试图文件
- migrations
- __init__.py
2、数据库建模
在app当中的models文件里进行数据库建模
class 表名(models.Model):
字段 = models.类型(参数)
类型:
CharField 字符串
Max_lenth 长度
TextField 文本类型
DataField 时间 年月日
DataTimeField 时间 年月日时分秒
ImageField 图片,Upload_to 上传地址
EmailField 邮箱,符合邮箱地址格式的字符串
IntegerField 数字 整数
from django.db import models
# Create your models here.
class Type(models.Model):
label = models.CharField(max_length=32) # lable char(30)
description = models.TextField()
class Author(models.Model):
name = models.CharField(max_length=32)
age = models.IntegerField()
birthday = models.DateField()
email = models.EmailField()
phone = models.CharField(max_length=32)
photo = models.ImageField(upload_to="images")
address = models.TextField()
class Article(models.Model):
title = models.CharField(max_length=32)
author = models.ForeignKey(to=Author, on_delete=models.CASCADE)
time = models.DateField()
description = models.TextField()
content = models.TextField()
picture = models.ImageField(upload_to="images")
type = models.ManyToManyField(to=Type)
class Picture(models.Model):
label = models.CharField(max_length=32)
image = models.ImageField(upload_to="images")
class Message(models.Model):
content = models.TextField()
time = models.DateTimeField()
messager = models.CharField(max_length=32)
3、settings配置
1、安装app
在INSTALLED_APPS列表中添加article
2、进行数据库配置
(1)首先在mysql创建blog数据库
(2)在settings进行数据库配置
3、时区和语言
4、媒体配置
媒体配置在settings里没有,需要自己在后面写入
MEDIA_URL 媒体文件前端的路由,不可以和STATIC_URL一样
MEDIA_ROOT 媒体文件上传的根目录,会和imageField当做的upload拼接形成 完整的上传路径
4、数据库同步
1、django校验
python manage.py check
2、数据库语句生成
python manage.py makemigrations
生成成功之后可以在artical下的migrations下看到一个0001_initial.py文件
如果失败的话,大概率是因为不认为mysql,所以可以修改__init__.py文件试一下
3、数据库同步
python manage.py migrate
然后可以在数据库里查看一下,看看有没有同步成功
5、django admin后台
Admin是django官方定义的一个完整的后台系统,在我们下载django的同时下载下来。
创建admin后台管理系统的超级用户
python manage.py createsuperuser
然后登陆/admin路由进行操作
在app当中的admin文件注册数据表
admin.site.register(数据表名)
这里是使用的之前在models文件定义的数据表
from django.contrib import admin
# Register your models here.
from artical.models import *
admin.site.register(Article)
admin.site.register(Author)
admin.site.register(Message)
admin.site.register(Type)
admin.site.register(Picture)
然后再看
点击Articles
添加__str__方法,来加强实例的可读性
可以看到,这个返回的是一个对象的名字,影响我们的观感,所以可以在数据库当中
让它返回标题的名字
其它的数据库也可以修改一下
ArticleAdmin类修改显示的样式
把这个类,添加给Article
而在修改之前,界面是这样的