在虚拟环境使用以下命令将当前虚拟环境中的依赖包以版本号生成至文件中:
pip freeze >requirements.txt
pip install -r requirements.txt
## SQLAlchemy
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
?
app = Flask(__name__)
?
# 配置数据库的地址 :数据库类型://数据库用户名:数据库密码@数据库地址:数据库端口/数据库名字
app.config[‘SQLALCHEMY_DATABASE_URI‘] = ‘mysql+pymysql://root:123456@127.0.0.1/flask_sql‘
# 跟踪数据库的修改 --> 不建议开启 未来的版本中会移除
app.config[‘SQLALCHEMY_TRACK_MODIFICATIONS‘] = True
# 查询是会显示原始SQL语句
# app.config[‘SQLALCHEMY_ECHO‘] = True
?
?
# 读取配置
# app.config.from_object(Config)
# 创建数据库sqlalchemy工具对象
db = SQLAlchemy(app)
?
# 数据库的模型,需要继承db.Model
class Role(db.Model):
# 定义表名
__tablename__ = ‘roles‘
?
# 定义字段
# db.Column 表示是一个字段
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(16), unique=True)
class User(db.Model):
__tablename__ = ‘users‘
?
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(16), unique=True)
email = db.Column(db.String(32), unique=True)
password = db.Column(db.String(32))
# db.ForeignKey(‘roles.id‘) 表示是外键。(‘表名.id‘)
role_id = db.Column(db.Integer, db.ForeignKey(‘roles.id‘))
?
?
@app.route(‘/‘)
def hello_world():
return ‘Hello World!‘
?
?
if __name__ == ‘__main__‘:
# 删除表:防止反复运行造成数据的冗余
db.drop_all()
print("aaaa")
# 创建表
db.create_all()
?
ro1 = Role(name=‘admin‘)
db.session.add(ro1)
db.session.commit()
# 再次插入一条数据
ro2 = Role(name=‘user‘)
db.session.add(ro2)
db.session.commit()
?
us1 = User(name=‘wang‘, email=‘wang@163.com‘, password=‘123456‘, role_id=ro1.id)
us2 = User(name=‘zhang‘, email=‘zhang@189.com‘, password=‘201512‘, role_id=ro2.id)
us3 = User(name=‘chen‘, email=‘chen@126.com‘, password=‘987654‘, role_id=ro2.