簡介
django 使用關系對象映射(Object Relational Mapping,簡稱ORM),遵循Code Frist 的原則,可以根據代碼中定義的類來自動生成數據庫表,
使開發者專注與代碼開發,而不再關注數據庫表設計。
django默認支持sqlite3、mysql、oracle、postgresql數據庫、像其他db2和sqlserver之類的數據庫需要第三方的支持。
1. 安裝mysql 啟動
MySQL-python
安裝MySQL_python-1.2.5-cp27-none-win_amd64.whl
2. pip install MySQL_python-1.2.5-cp27-none-win_amd64.whl
3. pip freeze 查看
2. Settings.py 配置數據庫及生成數據庫表
1) 數據庫引擎:
'django.db.backends.postgresql'
'django.db.backends.mysql''django.db.backends.sqlite3''django.db.backends.oracle'
2) 默認的是sqlite3
DATABASES = {
'default': {'ENGINE': 'django.db.backends.sqlite3','NAME': os.path.join(BASE_DIR, 'db.sqlite3'),}}
3) mysql 的配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql','NAME': 'web_django','USER': 'root','PASSWORD': 'root','HOST': '127.0.0.1', # Set to empty string for localhost. Not used with sqlite3.'PORT': '3306', # Set to empty string for default 3306. Not used with sqlite3.
}
}
4) 創建數據庫
sqlite3 不需要手動去創建數據庫,其他數據庫需要手動創建。
使用Navicat for Mysql 創建Mysql數據庫方法如下

5) 測試配置是否正確
使用python manage.py shell 測試是否連接成功,如不報錯說明連接成功。
F:\workSpace\Python\pythonDemo\sitename>python manage.py shell
Python 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)] on win32Type "help", "copyright", "credits" or "license" for more information.(InteractiveConsole)>>> from django.db import connection>>> connection.cursor()<django.db.backends.utils.CursorDebugWrapper object at 0x0000000003C508D0>

6) 把app 注冊到settings.py 中的"INSTALLED_APPS"中
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','web',]
3. 在app的models.py文件中創建models子類
# -*- coding: utf-8 -*-from __future__ import unicode_literalsfrom django.db import modelsclass UserInfo(models.Model):userName = models.CharField(max_length=50)passWord = models.CharField(max_length=50)
4. 執行下列命令生成數據庫表
python manage.py makemigratioinspython manage,py migrate

5. 數據庫表更新
如表格中增加用戶創建時間。
models.py
# -*- coding: utf-8 -*-
from __future__ import unicode_literalsfrom django.db import modelsclass UserInfo(models.Model):userName = models.CharField(max_length=50)passWord = models.CharField(max_length=50)createDate = models.DateField()
執行: python manage.py makemigratioins並輸入:1輸入:timezone.now執行:python manage.py migrate![]()
![]()