1. 程式人生 > >基於python flask的自動化測試平臺(一)--建立資料庫

基於python flask的自動化測試平臺(一)--建立資料庫

說實話對於建立資料庫的原理我也不太懂,我只能把其他人的例子搬運過來然後自己進行修改成自己需要的樣子

一、建立配置檔案 aoto_test\config.py

import os
CSRF_ENABLED = True
SECRET_KEY = 'ha-ha-ha'


basedir = os.path.abspath(os.path.dirname(__file__))

SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir,'app.db')
SQLALCHEMY_MIGRATE_REPO = os.path.join(basedir,'db_repository')

二、建立app\database\db_create.py 用來建立資料庫

from migrate.versioning import api
from config import SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO
from app import db
import os.path
db.create_all()

if not os.path.exists(SQLALCHEMY_MIGRATE_REPO):
    api.create(SQLALCHEMY_MIGRATE_REPO, 'database repository')
    api.version_control(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO)
else:
    api.version_control(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO, api.version(SQLALCHEMY_MIGRATE_REPO))

三、修改app\__init__.py檔案

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import os
from configs import basedir

app = Flask(__name__)
app.config.from_object('configs')
db = SQLAlchemy(app)

from app import views, models

主要是增加資料庫的配置一遍應用啟動的時候可以連線到資料庫

四、建立資料庫模型,也就是各個表,這裡我根據自己的需要設計了平臺所需要的幾張表個app\models.py

from app import db

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    nickname = db.Column(db.String(64), index=True, unique=True)
    email = db.Column(db.String(120), index=True, unique=True)
    username = db.Column(db.String(64), index=True, unique=True)
    password = db.Column(db.String(128))

    is_authenticated = True  # 判斷使用者是否登陸

    is_active = True

    is_anonymous = True

    def __repr__(self):
        return '<User %r>' % (self.nickname)


class Case(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(32))
    ways = db.Column(db.String(100))
    request_method = db.Column(db.String(32))
    data_type = db.Column(db.String(32))
    data = db.Column(db.String(250))
    check = db.Column(db.String(100))
    creation_date = db.Column(db.String(32))
    org_id = db.Column(db.Integer)
    module_id = db.Column(db.Integer)
    is_succ = db.Column(db.Integer)

    def __init__(self,name,ways,request_method,data_type,data,check,creation_date,org_id,module_id,is_succ):
        self.name = name
        self.ways = ways
        self.request_method = request_method
        self.data_type = data_type
        self.data = data
        self.check = check
        self.creation_date = creation_date
        self.org_id = org_id
        self.module_id = module_id
        self.is_succ = is_succ

    def __repr__(self):
        return '<Case %r>' % (self.name)

class Module(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    module_name = db.Column(db.String(32))
    creator = db.Column(db.String(32))
    org_id = db.Column(db.Integer)

    def __init__(self,module_name,creator,org_id):
        self.module_name = module_name
        self.creator = creator
        self.org_id = org_id

    def __repr__(self):
        return '<Module %r>' % (self.module_name)

class Project(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    project_name = db.Column(db.String(32))
    creator = db.Column(db.String(32))

    def __init__(self,project_name,creator):
        self.project_name = project_name
        self.creator = creator

    def __repr__(self):
        return '<Project %r>' % (self.project_name)

五、建立資料庫的基本工作完成了,現在執行app\database\db_creat.py這個指令碼來建立資料庫

執行完成後在根目錄下會新增了一個db檔案

用Navicat開啟這個db檔案檢視

到此,資料庫算是建立完成了,準備工作也差不多完成了,下一步就是開始前後端的程式開發了。