1. 数据库设置
默认情况下,配置使用SQLite。若不使用SQLite作为数据库,则需要额外的设置,例如 USER,PASSWORD和HOST必须加入。
其中ENGINE设置为数据库后端使用。内置数据库后端有:
- 'django.db.backends.postgresql'
- 'django.db.backends.mysql'
- 'django.db.backends.sqlite3'
- 'django.db.backends.oracle'
在mysite/settings.py文件中,通过DATABASES项进行数据库设置
1 DATABASES = { 2 'default': { 3 'ENGINE': 'django.db.backends.mysql', 4 'NAME': 'mydb', 5 'USER': 'root', 6 'PASSWORD': '123456', 7 'HOST': 'localhost', 8 'PORT': '3306', 9 } 10 }
安装PyMySQL,若已经安装请略过。
$ pip install pymysql
打开mysite/__init__.py
,写入以下代码导入pymysql:
1 import pymysql 2 pymysql.install_as_MySQLdb()
另外,请注意在mysite/settings.py文件的INSTALLED_APPS设置中。它包含在该Django实例中激活的所有Django应用程序的名称。应用程序可以在多个项目中使用,您可以打包和分发,以供他人在项目中使用。
默认情况下,INSTALLED_APPS包含以下应用程序,所有这些应用程序都与Django一起提供:
- django.contrib.admin - 管理网站。你会很快使用它。
- django.contrib.auth - 认证系统。
- django.contrib.contenttypes - 内容类型的框架。
- django.contrib.sessions - 会话框架
- django.contrib.messages - 消息框架。
- django.contrib.staticfiles - 管理静态文件的框架。 这些应用程序默认包含在一般情况下是方便的。
其中一些应用程序使用至少一个数据库表,因此我们需要在数据库中创建表,然后才能使用它们。为此,请运行以下命令:
$ python manage.py migrate
该migrate命令查看该INSTALLED_APPS设置,并根据mysite/settings.py文件中的数据库设置和应用程序随附的数据库迁移创建任何必需的数据库表。您会看到适用于每个迁移的消息。
2. 创建模型
编辑 polls/models.py文件
1 from django.db import models 2 3 4 class Question(models.Model): 5 question_text = models.CharField(max_length=200) 6 pub_date = models.DateTimeField('date published')
3. 激活模型
要将该应用程序包括在我们的项目中,我们需要在设置中添加对其配置类的引用INSTALLED_APPS。该 PollsConfig班是在polls/apps.py文件中,所以它的虚线路径'polls.apps.PollsConfig'。
编辑mysite/settings.py文件,并将该虚线路径添加到该INSTALLED_APPS设置。
INSTALLED_APPS = [
'polls.apps.PollsConfig' ,
'django.contrib.admin' ,
'django.contrib.auth' ,
'django.contrib.contenttypes' ,
'django.contrib.sessions' ,
'django.contrib.messages' ,
'django.contrib.staticfiles' ,
]
现在,Django知道包含该polls应用程序。我们来运行如下命令来生产数据结构的迁移文件:
$ python manage.py makemigrations polls
[root@localhost mysite]# tree polls
polls
├── admin.py
├── apps.py
├── __init__.py
├── migrations
│ ├── 0001_initial.py
│ ├── __init__.py
├── models.py
├── tests.py
├── urls.py
└── views.py
如上面所示,产生了一个文件:polls/migrations/0001_initial.py
我们可以执行下面命令查看数据结构迁移文件,看看迁移将运行什么SQL?
$ python manage.py sqlmigrate polls 0001
最后我们运行如下命令来执行迁移操作:
$ python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, polls, sessions
Running migrations:
Rendering model states... DONE
Applying polls.0001_initial... OK
4. 使用
现在进入交互式的Python shell,并使用Django提供的免费API
$ python manage.py shell
>>> from polls.models import Question, Choice # 导入我们刚写的模型类。
# 获取Question的所有信息,但没有。
>>> Question.objects.all()
<QuerySet []>
使用模型方法添加查看数据