flask_sqlalchemy其实是在sqlalchemy上封装了一层适用与flask的一个插件,便于开发者在flask中更方法的操作数据库,在flask中使用flask_sqlalchemy主要是要注意目录结构
这是一个小型程序的目录结构
FlaskProject
app
__init__.py
models.py
views
login.py
middlewares.py
static
templates
settings.py
manage.py
app->__init__.py
from flask import Flask
from flask_sqlalchemy import SQLAlchemy # 到入flask_sqlalchemy
from flask_session import Session
db = SQLAlchemy()
from .models import *
from .views.login import login
def create_app(settings_cls):
app = Flask(__name__, template_folder='templates', static_folder='statics', static_url_path='/static')
app.config.from_object(settings_cls) # 加载配文件
Session(app) # session写到redis
db.init_app(app) # 初始化数据库
app.register_blueprint(login)
return app
models.py
from .import db
import datetime
class Users(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(32), index=True, nullable=False)
email = db.Column(db.String(32), unique=True)
ctime = db.Column(db.DateTime, default=datetime.datetime.now)
extra = db.Column(db.Text, nullable=True)
__table_args__ = (
db.UniqueConstraint('id', 'name', name='uix_id_name')