Database setup
打开mysite/settings.py.它是一个普通的python模块,模块级别的变量表示Django的设置。
默认情况下,配置的是SQLite.如果要换数据库,安装合适的数据库并在DATABASES ‘default'中更改以下键的值来匹配数据库连接的设置。
![](https://img.haomeiwen.com/i7867467/92b67c5c105d795b.png)
编辑mysite/settings.py时,把TIME-ZONE设置为自己所在的时区。
INSRALLED_APPS,包含了所有在Django应用中激活的Django实例,默认情况下,包含以下应用:
![](https://img.haomeiwen.com/i7867467/dfd060144bc2a191.png)
其中一些应用程序至少使用一个数据库表,因此在使用它们之前,需要在数据库中创建表。
python3 manage.py migrate
迁移命令查看INSTALLED_APPS的设置,并根据mysite/setting.py中的设置创建任何必要的数据库表。我们将看到每个应用迁移的消息。
![](https://img.haomeiwen.com/i7867467/475b68b260c73116.png)
Creating models
我们将定义模型:数据库的布局,以及附加的元数据。
在poll应用中,我们将创建两个模型:Question 和Choice.Question包含问题和发布日期。Choice包含两个字段:选择的文本和投票点击。每个选择关联一个问题。
编辑polls/models.py文件如下:
![](https://img.haomeiwen.com/i7867467/4938946f4ec1b27e.png)
Activating models
这一小部分模型代码给Django提供了很多信息。有了它,Django可以做:
为应用程序创建一个数据库模式
为Question和Choice对象创建了Python 数据访问接口
但首先我们需要告诉工程polls 应用已安装。要使这个工程包含这个工程,我们需要在INSTALLED_APPS设置的configuration类中添加指引。PollsConfig 类在polls/apps.py文件中,所以将"polls.apps.PollsConfig"路径添加到mysite/settings.py的INSTALLED_APPS设置中。
![](https://img.haomeiwen.com/i7867467/2af6a65946896973.png)
现在Django知道要加入polls应用。执行另一个命令:
python3 manage.py makemigrations polls
将会看到以下输出:
![](https://img.haomeiwen.com/i7867467/e41920347c9c123c.png)
通过运行makemigrations,告诉Django你已经对models做过了修改,并希望把更改作为迁移。
迁移是Django存储对models的更改方式,只是磁盘上的文件。可以在polls/migrations/0001_initial.py查看它。
有一个命令将为您运行迁移并自动管理数据库模式
python3 manage.py sqlmigrate polls 0001
可以运行python manage.py check ,在不进行迁移或数据库访问的情况下,检查项目中的任何问题。
现在再运行一次迁移,在你的数据库中创建模型表:
python3 manage.py migrate
![](https://img.haomeiwen.com/i7867467/ac5affffe688c4f8.png)
Playing with the API
调用python shell,使用以下命令:
python3 manage.py shell
使用这个命令而不是python,是因为manage.py 设置了DJANGO_SETTINGS_MODULE环境变量。这就为Django提供了到mysite/settings.py的导入路径。
在Question model中,给Question和Choice添加str()方法
![](https://img.haomeiwen.com/i7867467/c64c84d828416f10.png)
在models中添加str()方法是很重要的,这不仅是为了在处理交互提示符时方便,而且因为对象的表示在Django的自动生成管理中使用
添加一个自定义的方法做示例:
![](https://img.haomeiwen.com/i7867467/375597bb7c270be7.png)
Introducing the Django Admin
创建一个管理员用户:
python3 manage.py createsuperuser
启动开发服务器:
python3 manage.py runserver
在浏览器中访问 http://127.0.0.1:8000/admin/,进入到admin登录窗口:
![](https://img.haomeiwen.com/i7867467/49fbf642d13a0280.png)
使用超级管理员账号登录,进入到index page:
![](https://img.haomeiwen.com/i7867467/b3fbe7f846fd4853.png)
make the pull app modifiable in the admin
Poll 应用在admin index page并没有看到。我们需要告诉admin Question对象有admin的接口
![](https://img.haomeiwen.com/i7867467/7f1b5139b32865fe.png)
网友评论