您的位置:首页 > 移动开发

django学习笔记【003】创建第一个带有model的app

2017-02-07 16:33 771 查看
【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 AppConfig

class PollsConfig(AppConfig):
name = 'polls'


【5】创建用于迁移的中间文件

tree polls/
polls/
├── admin.py
├── apps.py
├── __init__.py
├── migrations
│   └── __init__.py
├── models.py
├── tests.py
└── views.py

python3.5 manage.py makemigrations polls
Migrations for 'polls':
polls/migrations/0001_initial.py:
- Create model Person

tree 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 0001
Operations to perform:
Target specific migration: 0001_initial, from polls
Running 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 |
+--------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+


----
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: