1. 创建django程序
- 终端命令:django-admin startproject sitename (在当前目录下创建一个Django程序)
- IDE创建Django程序时,本质上都是自动执行上述命令
其他常用命令:
python manage.py runserver ip:port (启动服务器,默认ip和端口为http://127.0.0.1:8000/)
python manage.py startapp appname (新建 app)
python manage.py syncdb (同步数据库命令,Django 1.7及以上版本需要用以下的命令)
python manage.py makemigrations (显示并记录所有数据的改动)
python manage.py migrate (将改动更新到数据库)
python manage.py createsuperuser (创建超级管理员)
python manage.py dbshell (数据库命令行)
2、外键 ForeignKey( to="Blog", to_field="nid", on_delete=models.DO_NOTHING)
to, # 要进行关联的表名
to_field = None, # 要关联的表中的字段名称
on_delete = None, # 当删除关联表中的数据时,当前表与其关联的行的行为
- models.CASCADE,删除关联数据,与之关联也删除
- models.DO_NOTHING,删除关联数据,引发错误IntegrityError
- models.PROTECT,删除关联数据,引发错误ProtectedError
- models.SET_NULL,删除关联数据,与之关联的值设置为null(前提FK字段需要设置为可空)
- models.SET_DEFAULT,删除关联数据,与之关联的值设置为默认值(前提FK字段需要设置默认值)
- models.SET,删除关联数据,
a.与之关联的值设置为指定值,设置:models.SET(值)
b.与之关联的值设置为可执行对象的返回值,设置:models.SET(可执行对象)
3、Django 元数据meta
db_table = 'xxx'修改表名为xxx
ordering = 'xxx'按照指定字段xxx排序
verbose_name = 'xxx'给模型类指定一个直观可读的信息xxx
verbose_name_plural = verbose_name设置verbose_name的复数
abstract = True设置模型类为一个基类
permissions = (('定义好的权限', '权限说明'),)给数据库的表设置额外的权限
managed = False是否按照django既定的规则来管理模型类
unique_together = ('address', 'note')联合唯一键,约束
app_label = 'xxx'定义模型类属于哪一个应用
db_tablespace定义数据库表空间的名字