python manage.py 列出所有子命令
python manage.py runserver 启动服务
python manage.py runserver 127.0.0.1:80 启动服务按端口号
python manage.py startapp xxx 创建应用
python manage.py makemigrations
# 建立 migrations文件目录
# 并记录下你所有的关于models.py的改动,比如0001_initial.py
# 没有改动数据库
# 应用使用的过程中也不会使用
# 如果没有办法建立的时候要检查ctrl+点击能否使用到,有可能在__init__.py需要导入
# 前置知识:django_migrations表:记录已经应用到数据库的语句
# models.py有改动,migrations文件夹无记录,django_migrations表无记录,MySQL实际表无更新
# models.py有改动,migrations文件夹有记录,django_migrations表未有记录,MySQL实际表无更新
# models.py有改动,migrations文件夹有记录,django_migrations表有记录,MySQL实际表无更新
# models.py有改动,migrations文件夹有记录,django_migrations表有记录,MySQL实际表有更新
python manage.py migrate
# 数据库迁移,根据上面migrations/0001_initial.py改动数据库
# 先找django_migrations表,迁移过的表会记录在其中并不再执行migrate,未找到执行记录则进行migrate
# django_migrations表会增加改变过的记录name是migrations文件目录的.py文件
python manage.py migrate --fake
# fake忽略
# 对比django_migrations表的记录,找出没有包含的migration文件
# 不会去真正执行migration文件应用到数据库
# 但是会在django_migrations表添加记录,表示有记录,可以删除掉记录表示未创建
python manage.py migrate --fake-initial
# 当对比django_migrations表的记录发现没有未执行的migration文件时
# 相比--fake,它还会去检查并生成对应的django_content_type表、auth_permission表的记录
# 而当发现还有未执行的migration文件时,如果操作是是建表或者加字段,它会跳过执行修改表结构的语句。
# 如果是其他操作,和单纯的migrate一样,会真正执行修改表结构的语句。
# 手动修改MySQL的模型代码
# 删除models.py
python manage.py inspectdb > 应用名/models.py
# 反向生成模型代码
python manage.py startapp demo 创建名为“demo”的app
python manage.py createsuperuser
用户名密码
Django中 LOGIN_URL 默认是 /accounts/login/
setting.py的 INSTALLED_APPS加上
‘xxx’,
INSTALLED_APPS = (
# 框架自定义命令
'blueapps.contrib.bk_commands',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'xxx',
)