Django 04. django框架模型之生成數據表



簡介
 
       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 win32
Type "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_literals
from django.db import models
 
class UserInfo(models.Model):
    userName = models.CharField(max_length=50)
    passWord = models.CharField(max_length=50)

4.  執行下列命令生成數據庫表
 
python manage.py makemigratioins
python manage,py migrate
 
                 

5.  數據庫表更新
        如表格中增加用戶創建時間。
        
        models.py
          # -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models
 
class 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
 
 

 


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM