一、安装Django包
打开Anaconda Prompt,使用pip安装Django包
pip install Django
二、创建Django项目
打开Intellij Idea,创建Django项目,在新建项目的时候选择已经创建好的python环境(我这里直接只想Anaconda已经配置好的py环境目录),Application Name可以空,后续再创建
这里创建一个名为:IntellijPythonTest项目
接着打开左下角,Terminal命令行模式,键入以下命令,创建app,完成后,刷新一下目录,就可以看到app的简易目录
python manage.py startapp app名称
栗子:python manage.py startapp blog
然后我们执行以下两行命令,生存sqlite数据库和启动服务器运行该项目
# 更新数据库操作,如果没有会生存db.sqlite3数据库文件
python manage.py migrate
# 启动服务器,端口8000
python manage.py runserver localhost:8000
打开浏览器,即可看到默认首页
三、关于 TypeError: view must be a callable or a list/tuple in the case of include() 错误解决方案
当前Django版本为:2.2.3
因为Django 1.10版本以后,不允许在URL模式中将视图指定为字符串,因此需要将视图引入到文件中,如下代码栗子:
from blog import views as blog
url(r'^blog/$', blog.hello, name='blog'),
四、models 实体对象层
在models.py里面建立相应的实体对象后,采用makemigration命令,执行模型创建同步到migrate操作上,然后再执行migrate命令,更新数据库操作
# 执行模型创建并同步到migrate操作上
python manage.py makemigrations
# 同步模型到数据库的操作,更新数据库(Django 1.9以后,migrate命令代替syncdb)
python manage.py migrate
在admin.py中注册模型,这样我们在后面就可以在自带的后台管理中看到这个对应的模型对象信息并使用它,这里就提前先说了,或者在第7步管理页面中你没有看到blog模块时,再回来写
五、关于 TypeError: __init__() missing 1 required positional argument: 'on_delete' 错误解决方案
在声明实体对象外键关系的时候报错,以下是变更写法问题,Django2.0版本以后,定义外键关系的时候需要加on_delete选项
author = models.ForeignKey(Author)
变更为
author = models.ForeignKey(Author, on_delete=models.CASCADE)
on_delete有CASCADE、PROTECT、SET_NULL、SET_DEFAULT、SET()五个可选择的值
- CASCADE:此值设置,是级联删除
- PROTECT:此值设置,是会报完整性错误
- SET_NULL:此值设置,会把外键设置为null,前提是允许为null
- SET_DEFAULT:此值设置,会把设置为外键的默认值
- SET():此值设置,会调用外面的值,可以是一个函数
六、sqlite3基本操作
在terminal中键入以下命令,可以对生成的sqlite数据库进行操作
# 进入数据库并显示版本号信息
# 示例:
sqlite3 数据库名称.sqlite3
# 本栗子:
sqlite3 db.sqlite3
# sqlite> 显示已经进入到sqlite数据库命令行模式
# 显示数据库中已经创建的表
.tables
# 退出sqlite命令行
.exit
七、后台管理(创建超级管理员、创建测试数据)
回到terminal中,开始创建超级管理员账号,输入以下命令,依次输入信息完成创建
python manage.py createsuperuser
记得如果urls.py中,已经注释掉admin默认的链接跳转要放开注释,然后重启服务器,通过以下地址进入后台管理页面
http://localhost:8000/admin
我们可以看到之前在代码中创建的Article和Authors模型对象,Django可以在这个简易的后台封装好了一系列数据库操作,我们可以通过Add等操作直接对sqlite数据库添加数据