三、自動化測試平臺搭建-django-如何用mysql數據庫做web項目
前景: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項目