flask_sqlalchemy ORM Models模型文件和数据表的生成
flask_sqlalchemy ORM Models模型文件和数据表的生成
1、ORM 模型文件最好不要写在app.py里的。
较为合理的做法是在根目录新建models.py专门存放ORM模型
本例 models.py 代码如下:
# coding: utf-8 from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy() class User(db.Model): __tablename__ = 'user' id = db.Column(db.Integer, primary_key=True) uname = db.Column(db.String(50), nullable=False) upwd = db.Column(db.String(32), nullable=False) uqx = db.Column(db.Integer, default=0) # 0 用户 1管理员 ustate = db.Column(db.Integer, default=1) # 0 正常状态 0管理员禁言
2. 主文件 app.py 代码如下:
import random from flask import Flask, render_template from models import db,User import conf import nicheng app = Flask(__name__) app.config.from_object(conf.Config) # 数据库初始化 db.init_app(app) #user = User(uname='admin',upwd='123',uqx=1, ustate=1) with app.app_context(): db.create_all() @app.route('/') def index(): return render_template('index.html') @app.route('/fabu') def fabu(): niname = random.choice(nicheng.nclist) return render_template('shudong.html', niname=niname) if __name__ == '__main__': app.run()
3.生成数据表的命令是:
with app.app_context(): #上下文环境处理 db.create_all()
4.在生成数据表之前,必须连接数据库
数据库配置文件如下:
"""配置文件""" import os.path class Config(object): """项目配置文件""" # 数据库连接URI SQLALCHEMY_DATABASE_URI = 'mysql://root:root@localhost/py03_xuyuan' SQLALCHEMY_TRACK_MODIFICATIONS =True # flash,form wft SECRET_KEY = 'ssfy33452232345fd' # 文件上传的根路径 MEDIA_ROOT = os.path.join(os.path.dirname(__file__), 'medias')