说实话对于创建数据库的原理我也不太懂,我只能把其他人的例子搬运过来然后自己进行修改成自己需要的样子
原文请参考http://www.pythondoc.com/flask-mega-tutorial/database.html
一、创建配置文件 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 '' % (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 '' % (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 '' % (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 '' % (self.project_name)
五、创建数据库的基本工作完成了,现在执行app\database\db_creat.py这个脚本来创建数据库
用Navicat打开这个db文件查看
到此,数据库算是创建完成了,准备工作也差不多完成了,下一步就是开始前后端的程序开发了。