1. 程式人生 > >三、自動化測試平臺搭建-django-如何用mysql數據庫做web項目

三、自動化測試平臺搭建-django-如何用mysql數據庫做web項目

pro efi 創建 over 操作 華山 rec 配置 flow

前景:django自帶的數據庫是sqlite3,這是一種輕量級數據庫,一般用於手機中,web項目用的大多數還是mysql,這次做一個項目‘圖書-英雄’信息管理

1、在家目錄下的Desktop創建一個文件夾,在這個文件夾下創建一個名為pytest1虛擬環境(第一篇已經說過怎麽安裝虛擬環境)

(1)cd ~/Desktop

  (2)mkdir project_1

(3)mkvietualenv -p python3.5 pytest1 #創建虛擬環境

(4)workon pytest1 #進入虛擬環境

(5)pip install django=1.8.2 #在虛擬環境中安裝需要的包

(6)django-admin startproject test2 #創建項目test2

(7)cd test2

(8)python manage.py startapp booktest #創建應用booktest,圖書信息

(9)將應用與項目關聯,修改如下圖

技術分享圖片

 

2、django框架默認使用sqlite3數據庫,如何讓他使用MySQL數據庫呢?看下圖

技術分享圖片

配置代碼:

DATABASES = {
    ‘default‘: {
        ‘ENGINE‘: ‘django.db.backends.mysql‘,
        ‘NAME‘: ‘test2‘, #數據庫名字,
        ‘USER‘: ‘root‘, #數據庫登錄用戶名
        ‘PASSWORD‘: ‘mysql‘, #數據庫登錄密碼
        ‘HOST‘: ‘localhost‘, #數據庫所在主機
        ‘PORT‘: ‘3306‘, #數據庫端口
    }
}

3、上面的配置中,數據庫test2在django框架下不會自動創建,所以我們要手動進入MySQL數據庫去創建
進入終端 (1)sudo mysql service start #啟動mysql
(2)mysql -uroot -p密碼 #連接mysql
(3)create database test2 charset=utf8;#創建test2數據庫

4、定義模型類(上一篇講過)

  • 模型類被定義在"應用/models.py"文件中,此例中為"booktest/models.py"文件。
  • 模型類必須繼承自Model類,位於包django.db.models中。
  • 提示:對於重要數據使用邏輯刪除。

實例演示:

  (1)打開booktest/models.py,定義模型類如下:

from django.db import models

#定義圖書模型類BookInfo
class BookInfo(models.Model):
    btitle = models.CharField(max_length=20
)#圖書名稱 bpub_date = models.DateField()#發布日期 bread = models.IntegerField(default=0)#閱讀量 bcomment = models.IntegerField(default=0)#評論量 isDelete = models.BooleanField(default=False)#邏輯刪除 #定義英雄模型類HeroInfo class HeroInfo(models.Model): hname = models.CharField(max_length=20)#英雄姓名 hgender = models.BooleanField(default=True)#英雄性別 isDelete = models.BooleanField(default=False)#邏輯刪除 hcomment = models.CharField(max_length=200)#英雄描述信息 hbook = models.ForeignKey(BookInfo)#英雄與圖書表的關系為一對多,所以屬性定義在英雄模型類中

(2)生成遷移文件

終端執行命令:python manage,py makemigrations

生成遷移文件的時候出現錯誤,把數據庫切換成了mysql,需要安裝pymysql模塊之後,Django框架才可以操作mysql數據庫。安裝命令:pip install pymysql -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

安裝成功之後,在test2/_init_.py文件中加上如下代碼:

import pymysql
pymysql.install_as_MySQLdb()

然後執行如下命令:

python manage.py makemigrations #生成遷移文件:根據模型類生成創建表的遷移文件

python manage.py migrate #.執行遷移:根據第一步生成的遷移文件在數據庫中創建表

技術分享圖片

(3)進入數據庫查看有沒有生成表

        技術分享圖片

    (4)在數據庫命令行中,復制如下語句執行,向booktest_bookinfo表中插入測試數據:     

insert into booktest_bookinfo(btitle,bpub_date,bread,bcomment,isDelete) values
(射雕英雄傳,1980-5-1,12,34,0),
(天龍八部,1986-7-24,36,40,0),
(笑傲江湖,1995-12-24,20,80,0),
(雪山飛狐,1987-11-11,58,24,0);

      再復制如下語句執行,向booktest_heroinfo表中插入測試數據:

insert into booktest_heroinfo(hname,hgender,hbook_id,hcomment,isDelete) values
(郭靖,1,1,降龍十八掌,0),
(黃蓉,0,1,打狗棍法,0),
(黃藥師,1,1,彈指神通,0),
(歐陽鋒,1,1,蛤蟆功,0),
(梅超風,0,1,九陰白骨爪,0),
(喬峰,1,2,降龍十八掌,0),
(段譽,1,2,六脈神劍,0),
(虛竹,1,2,天山六陽掌,0),
(王語嫣,0,2,神仙姐姐,0),
(令狐沖,1,3,獨孤九劍,0),
(任盈盈,0,3,彈琴,0),
(嶽不群,1,3,華山劍法,0),
(東方不敗,0,3,葵花寶典,0),
(胡斐,1,4,胡家刀法,0),
(苗若蘭,0,4,黃衣,0),
(程靈素,0,4,醫術,0),
(袁紫衣,0,4,六合拳,0);

三、自動化測試平臺搭建-django-如何用mysql數據庫做web項目