【1】python应用程序要连接mysql有多个驱动程序可供选择:
1、MySQLdb 这个只支持python2.x 所以在这里就不说了;
2、mysqlclient 下载地址
https://pypi.python.org/pypi/mysqlclient/1.3.9
3、MySQL Connector/python 这个是mysql官方主推的mysql驱动
https://dev.mysql.com/downloads/connector/python/
从django的官方文档中没有找到为什么python3.x选择了mysqlclient而不是MySQL Connector/Python ;在编写用到数据库功能的Django之前
要把mysqlclient安装一下。
【2】把polls这个app注册到project中去、修改settings.py 文件的INSTALLED_APPS配置项
INSTALLED_APPS = [ 'polls.apps.PollsConfig', # 增加polls.apps.PollsConfig 用于注册polls到project 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles',]
【3】配置django连接mysql数据库的方式、修改settings.py 文件的DATABAES配置项
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'tempdb', 'USER': 'appuser', 'PASSWORD': 'helloapp', 'HOST': '127.0.0.1', 'PORT': '3306' }}
【4】创建模式、在polls/models.py 文件下增加如下orm类
from django.apps import AppConfigclass PollsConfig(AppConfig): name = 'polls'
【5】创建用于迁移的中间文件
tree polls/polls/├── admin.py├── apps.py├── __init__.py├── migrations│ └── __init__.py├── models.py├── tests.py└── views.pypython3.5 manage.py makemigrations pollsMigrations for 'polls': polls/migrations/0001_initial.py: - Create model Persontree polls/polls/├── admin.py├── apps.py├── __init__.py├── migrations│ ├── 0001_initial.py│ ├── __init__.py│ └── __pycache__│ └── __init__.cpython-35.pyc├── models.py├── __pycache__│ ├── admin.cpython-35.pyc│ ├── apps.cpython-35.pyc│ ├── __init__.cpython-35.pyc│ └── models.cpython-35.pyc├── tests.py└── views.py
【6】把迁移应用到数据库
python3.5 manage.py migrate polls 0001Operations to perform: Target specific migration: 0001_initial, from pollsRunning migrations: Applying polls.0001_initial... OK
【7】查看数据库中有哪些变更
show tables;+-------------------+| Tables_in_tempdb |+-------------------+| django_migrations || polls_person |+-------------------+show create table polls_person;+--------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+| Table | Create Table |+--------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+| polls_person | CREATE TABLE `polls_person` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(8) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=latin1 |+--------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
----