django+xadmin常见问题和命令

1.进入到对应文件夹或盘符,创建django项目
django-admin startproject project

2.进入创建的项目文件根目录,创建app
python manage.py startapp app

3.数据迁移命令
python manage.py makemigrations
python manage.py migrate

4.在迁移后,又增加修改的,建议迁移子应用
python manage.py migrate appname

5.设置静态文件目录
STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
]

6.安装xadmin for django2对于django2来说只能用这个分支版本
pip install xadmin-django2

7.可以换国内安装源
pip install -i https://pypi.douban.com/simple xadmin-django2

8.python manage.py createsuperuser  

9.super:helixsky:helixsky

面试题1:migrate怎么判断哪些迁移脚本需要执行:

他会将代码中的迁移脚本和数据库中django_migrations中的迁移脚本进行对比,如果发现数据库中,没有这个迁移脚本,那么就会执行这个迁移脚本。

面试题2:migrate做了什么事情:

将相关的迁移脚本翻译成SQL语句,在数据库中执行这个SQL语句。
如果这个SQL语句执行没有问题,那么就会将这个迁移脚本的名字记录到django_migrations中。
面试题3:执行migrate命令的时候报错的解决办法:

原因:

执行migrate命令会报错的原因是。数据库的django_migrations表中的迁移版本记录和代码中的迁移脚本不一致导致的。

解决办法:

使用–fake参数:

首先对比数据库中的迁移脚本和代码中的迁移脚本。然后找到哪个不同,之后再使用--fake,将代码中的迁移脚本添加到django_migrations中,但是并不会执行sql语句。这样就可以避免每次执行migrate的时候,都执行一些重复的迁移脚本。

终极解决方案:

如果代码中的迁移脚本和数据库中的迁移脚本实在太多,就是搞不清了。那么这时候就可以使用以下终极解决方案: 
1. 终极解决方案原理:就是将之前的那些迁移脚本都不用了。重新来过。要将出问题的app下的所有模型和数据库中表保持一致,重新映射。 
2. 将出问题的app下的所有模型,都和数据库中的表保持一致。 
3. 将出问题的app下的所有迁移脚本文件都删掉。再在django_migrations表中将出问题的app相关的迁移记录都删掉。 
4. 使用makemigrations,重新将模型生成一个迁移脚本。 
5. 使用migrate --fake-initial参数,将刚刚生成的迁移脚本,标记为已经完成(因为这些模型相对应的表,其实都已经在数据库中存在了,不需要重复执行了。) 
6. 可以做其他的映射了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值