参考资料:Tutorial02
Database setup
打开 mysite/settings.py
,这是一个 Python 的模块变量,表示着 Django 的设置。
Django 的数据库默认使用 SQLite,如果想使用其他 DBMS,需要更改 DATABASES 这个 Python 字典中,'default'
键值对应的字典,进行以下设置:
‘default’ 字典键 | ‘default’ 字典可能值 |
---|---|
'ENGINE' | 'django.db.backends.sqlite3' , 'django.db.backends.postgresql' ,'django.db.backends.mysql' , 'django.db.backends.oracle' , etc |
'NAME' | 数据库的名称,如果使用 sqlite,则为文件的路径 |
'USER' | 登录数据库的用户名,非 sqlite 数据库必须添加 |
'PASSWORD' | ##登录数据库用户名对应的密码,非 sqlite 数据库必须添加 |
'HOST' | 连接数据库的主机名,sqlite 数据库不需声明,空字符串表示 'localhost' |
mysite/settings.py
中 TIME_ZONE
变量可以用于设置时区。
mysite/settings.py
中 INSTALLED_APPS
表示项目中所有应用的名字,默认情况下,包括了以下来自 Django 的 apps:
django.contrib.admin
– The admin site. You’ll use it shortly.django.contrib.auth
– An authentication system.django.contrib.contenttypes
– A framework for content types.django.contrib.sessions
– A session framework.django.contrib.messages
– A messaging framework.django.contrib.staticfiles
– A framework for managing static files.
这里面的有些应用需要数据库中至少有一个表格,我们使用下面的命令创建他们:
|
|
Creating models
Models:模型,指明了数据库构造方式。一个模型对象对应一个表格,对象数据成员即为表格属性。
我们尝试在 polls 应用中新建两个名为 Question 和 Choice 的模型。在 polls/models.py
中使用两个 Python 的类表示,如下代码非常直白:
|
|
Activating models
通过 models ,可以直接在数据库中创建表格 或 操作数据库中的数据。但首先我们需要告诉 Django,该 polls 应用已经安装在了我们的项目中。
为了将我们的 apps 加入到我们的项目,我们需要更改 mysites/settings.py
中的 INSTALLED_APPS
设置。Polls 的配置文件在 polls/apps.py
文件的 PollsConfig
中,所以 mysite/settings.py
更改如下:
|
|
现在 Django 知道了需要添加 polls 这个应用,执行以下命令建立我们创建的 models 对应的数据库:
|
|
因为在 Django 中写的应用有着很强的移植性,在一个项目中写的应用可以轻松移植到其他应用上,所以 Django 提供了以上的命令重新安装移植的命令 → 所以以上执行 makemigrations polls 命令就是把 polls 这个应用移植到本项目,并进行创建数据库。
Django 会将改变之后的内容存储在 migration
中,可以在 polls/migrations/0001_initial.py
这个文件中看到数据库的表格的创建方式。
以下一个命令执行 polls/migrations/0001_initial.py
的内容:(回显执行的 sql 命令)
|
|
如果你不进行以上的迁徙操作,可以通过以下的命令查看会出现的问题:
|
|
总结:当你更改了 Django 项目的一个模型后,你需要通过以下的三步适配这些变化:
- 创建一个模型
models.py
- 执行命令
python manage.py makemigrations
,在migrations/
中生成数据库生成的中间 Python 脚本 - 执行命令
python manege.py migrate
,执行中间 Python 脚本,生成/修改数据库。
PostScript:你可以在下面这个网站查看完整的 manage.py 使用说明。
PostScript:可以在以下网站查看关于 Django 模型的使用,中文使用说明,官网使用说明。
Playing with API
使用 Django 提供的以下命令,可以在该项目下进入 Python 的用户交互界面,可以用于测试刚才创建的 Question 和 Choice 模块:
|
|
以下命令,可以测试 Python 数据库提供的 API:
|
|
Django 提供的数据库查询操作 API 相关文档。
Introducing the Django Admin
Creating an admin user
使用以下命令创建一个 admin 用户:
|
|
Starting the development server
如同之前一样按照以下命令启动服务器:
|
|
在浏览器中访问 URL:localhost:8000/admin/
,输入在上一步中创建的用户名和密码,可以进入管理页面。
Make the poll app modifiable in the admin
进入后发现页面中并没有显示我们创建的 Question 和 Choice 对象。
这时我们需要编辑 polls/admin.py
这个文件,输入以下代码:
|
|
这时刷新浏览器,即可查看 polls
中的 Question 和 Choice 对象。