先假设一个例子
我们创建了一个关于网络文章这样的一个数据库 里面都会有哪些表?,表里会有什么字段呢?
所以 我们先列出此项
直接列出
Article(文章)
Title Author (外键) Time Description Content Picture TypeID
Type(类型)
Label description
Author(作者)
Name Birthday Email Phone Photo address
Picture(图片)
Lable Image
Message (留言)
Content Time messager
就这么多吧 写起来好弄一点
先给大家展示一下效果
分为几个界面
觉得怎么样 一起创建吧
Django 模型搭建
Django鼓励开发者进行松耦合开发不能把所有的功能放到项目的根下,,而是,将功能分成具体的块,块被成为APP。只有在app当中才可以利用django进行数据建模,django进行诗句建模,
Django 采用了成熟的ORM数据库建模技术,方便,快捷,直观。
1、创建app
1、在当前目录(manage.py所在的目录)的命令行当做启动虚拟环境
Activate DjangoPath
2、切入django项目的manage.py的目录
Python manage.py startapp appName(Article)
3、app的结构
Migrations 数据库记录文件
__init__.py 包文件
__init__.py 包文件
Admin.py 后台管理文件
App.py 应用管理文件
Models.py 模型文件(数据库)
Test.py 单元测试文件
Views.py 试图文件
数据库建模
在app当中的models文件里进行数据库建模
Class 表名(models.Model):
字段 = models.类型(参数)
from django.db import models
class Type(models.Model):
label = models.CharField(max_length=32) # label 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.DateField()
messager = models.CharField(max_length=32)
# Create your models here.
CharField 字符串
max_length 长度
TextField 文本类型
DataField 时间 年月日
DataTimeField 时间 年月日时分秒
ImageField 图片,
Upload_to 上传地址
必须安装pillow模块
EmailField 邮箱,符合邮箱地址格式的字符串
IntegerField 数字 整数
2 然后我们配置settings
1、安装app
2、数据库配置
django默认使用sqllite3数据库,所以在这里我们可以修改来想使用的数据库,早这里我用mysql (在项目主目录中的__init__中配置)
同时要在settings中修改成为mysql数据库,填入自己创建的数据库要添加相关数据库的参数.(此步骤在创建完数据库之后执行)
Django mysql配置
1、在数据库当中创建对应的数据库
2、时区和语言
3、媒体配置(用于图片上传)
在setting的最后添加,
media_url媒体文件前端的路由,不可以和static_url一样
MEDIA_ROOT 媒体文件上传的根目录,会和imagefield 当中的upload拼接形成完整的上传路径
Media_url 媒体文件前端的路由,不可以和STATIC_URL一样
MEDIA_ROOT 媒体文件上传的根目录,会和imageField当做的upload拼接形成 完整的上传路径
需要注意的是:
在setting中需要提前修改两个地方的配置
1
2
数据库同步
1、Django校验
Python manage.py check(validate)
2、数据库语句生成
Python manage.py makemigrations
3、数据库同步
Python manage.py migrate
django admin 后台
admin 是django官方定义的一个完整版的后台系统,在我们下载django的同事下载下来了
创建admin后台管理系统的超级用户
python manage.py createsuperuser
在app当中的admin文件中注册数据表
登录/admin 路由操作
在数据库类中添加 def__str__方法,来加强实例的可读性
Admin后台可以在admin文件当中进行样式定制
定义类继承admin.ModelAdmin类,然后在当中使用字段进行样式调整和功
能添加
List_display 列表页展示的字段
List_per_page 单页展示的数据条数(分页)
Ordering 排序
List_editable 列表页可以编辑的字段
List_filter 过滤器
Search_field 搜索
Data_hierarchy 时间筛选
我们也可以用装饰器来注册表和样式