Django与mysql相连
Django链接数据库
在项目根setting.py中更改默认配置
1 | DATABASES = { |
ENGINE
用于特定的数据库引擎的配置,一般选项如下
1 | django.db.backends.sqlite3 |
NAME
:要连接的数据库名称的配置USER
:配置连接数据库的用户账号PASSWORD
:配置连接数据库的登录密码HOST
:配置数据库所在的主机IP地址
PORT
:配置连接数据库的端口号CHARSET
:配置连接数据库交互数据编码格式
创建模型
Django
项目中定义模型数据,其实就是定义class类型,通过类型创建的对象来封装管理数据,一定要在这里明确关联和对应关系
程序 | 数据库 |
---|---|
class 类型 |
table 表格 |
attr 属性 |
field 字段 |
object 对象 |
record 记录 |
模型中的属性与数据库中的字段对应
对象中的属性类型定义 | 表中的字段类型 |
---|---|
AutoField() |
auto_increment 自动增长 |
BOoleanField() |
bool 布尔类型 |
NullNooleanField() |
bool or null 扩展布尔类型 |
CharField() |
varchar 字符串 |
TextField() |
text 长文本 |
IntegerField() |
int 整数 |
DecimalField() |
double 双精度 |
FloatField() |
float 单精度 |
DateField() |
date 日期 |
TimeField() |
time 时间 |
DateTimeField() |
datetime 日期时间 |
FileField() |
blob 二进制 |
ImageField() |
bolb 二进制 |
每个字段定义时,都有自己的一些特殊选项指定
选项 | 描述 |
---|---|
null |
如果为True ,将NULL空值存储到数据库中,默认False |
blank |
如果为True ,表示该字段允许存储空值,默认False |
db_column |
字段名称,如果不指定,直接使用类型属性的名称作为字段名称 |
db_index |
如果设置为True ,表示个当前字段添加索引支持 |
default |
给字段默认值 |
primary_key |
是否设置当前字段为主键 |
unique |
如果为True ,该字段储存的值必须时唯一的 |
在大部分项目汇总,还会涉及到多表关联
选项 | 描述 |
---|---|
ForeignKey | 一对一关联,该字段定义在多个一方 |
ManToManyField | 多对多关联关系,该字段两方都需要定义 |
OneToOneField | 一对一关联,该字段可以定义在任意一方 |
项目结构
1 | ├── backend |
在根目录的setting.py
中添加
1 | INSTALLED_APPS = [ |
修改backend/models.py
1 | from django.db import models |
model
中定义两个类,代表两个表User,Class
,
创建两个表
1 | python manage.py makemigrations |
同步到mysql
1 | python manage.py migrate |
这时在mysql
中可以看到新增加的表
1 | mysql> show tables; |
后台显示数据库
在backend/admin.py
中注册模型
1 | from django.contrib import admin |
运行django
1 | python manage.py runserver 8888 |
在http://127.0.0.1:8888/admin/
中可以看到后台登录界面
创建超级用户
1 | python manage.py createsuperuser |
账号和密码都是admin
,其他可以随便填
这时可以通过后台登录界面进入后台看到数据库数据
修改 语言和时区
在根目录/setting.py
中修改 语言和时区
1 | LANGUAGE_CODE = 'zh-Hans' |
后台界面可以显示中文,通过增加可以添加数据