flask 与SQLAlchemy

来源:互联网 发布:别人域名到期了能买吗 编辑:程序博客网 时间:2024/06/04 19:36
# -*- coding:utf-8 -*-from flask import Flaskimport osfrom flask_sqlalchemy import SQLAlchemyfrom flask_script import Managerapp = Flask(__name__)manager = Manager(app)basedir = os.path.abspath(os.path.dirname(__file__))print(basedir)app.config['SQLALCHEMY_DATABASE_URI'] ='sqlite:///' + os.path.join(basedir, 'data.sqlite')# app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = Truedb = SQLAlchemy(app)class Role(db.Model):    __tablename__ = 'roles'    id = db.Column(db.Integer,primary_key=True)    name = db.Column(db.String(64),unique=True)    users = db.relationship('User',backref='role')    def __repr__(self):        return '<Role %r>' % self.nameclass User(db.Model):    __tablename__ = 'users'    id = db.Column(db.Integer,primary_key=True)    username = db.Column(db.String(64),unique=True,index=True)    role_id = db.Column(db.Integer,db.ForeignKey('roles.id'))    def __repr__(self):        return '<User %r>' % self.usernameif __name__ == '__main__':    #app.run(debug=True)    manager.run()#################  Shell    # >> > db.drop_all()    # >> > db.create_all()    # >> > from three import Role, User    # >> > admin_role = Role(name='yang')    # >> > mod_role = Role(name='xiao')    # >> > user_role = Role(name='User')    # >> > user_joho = User(username='john', role=admin_role)    # >> > print(admin_role.id)    # None    # >> > db.session.add(admin_role)    # >> > db.session.add(mod_role)    # >> > db.session.add(user_role)    # >> > db.session.add(user_joho)    # >> > print(admin_role.id)    # None    # >> > db.session.commit()    # >> > print(admin_role.id)    # 1    # >> >