码迷,mamicode.com
首页 > 数据库 > 详细

三、自动化测试平台搭建-django-如何用mysql数据库做web项目

时间:2019-01-17 01:20:00      阅读:321      评论:0      收藏:0      [点我收藏+]

标签:名称   src   数据库名   har   init   笑傲江湖   bre   let   str   

前景: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项目

标签:名称   src   数据库名   har   init   笑傲江湖   bre   let   str   

原文地址:https://www.cnblogs.com/lz-tester/p/10280248.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!