You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.8 KiB
58 lines
1.8 KiB
# -*- encoding: utf-8 -*-
|
|
'''
|
|
@File : test_py_orm.py
|
|
@License : (C)Copyright 2018-2022
|
|
|
|
@Modify Time @Author @Version @Desciption
|
|
------------ ------- -------- -----------
|
|
2023/4/18 10:14 zart20 1.0 None
|
|
'''
|
|
|
|
from flask import Flask
|
|
from flask_sqlalchemy import SQLAlchemy
|
|
|
|
|
|
app = Flask(__name__)
|
|
|
|
#设置连接数据库的URL
|
|
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:123123@127.0.0.1:3306/example'
|
|
|
|
#设置每次请求结束后会自动提交数据库中的改动
|
|
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
|
|
|
|
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
|
|
#查询时会显示原始SQL语句
|
|
app.config['SQLALCHEMY_ECHO'] = True
|
|
db = SQLAlchemy(app)
|
|
|
|
class Role(db.Model):
|
|
# 定义表名
|
|
__tablename__ = 'roles'
|
|
# 定义列对象
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
name = db.Column(db.String(64), unique=True)
|
|
us = db.relationship('User', backref='role')
|
|
|
|
|
|
class User(db.Model):
|
|
__tablename__ = 'users'
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
name = db.Column(db.String(64), unique=True, index=True)
|
|
email = db.Column(db.String(64),unique=True)
|
|
pswd = db.Column(db.String(64))
|
|
role_id = db.Column(db.Integer, db.ForeignKey('roles.id'))
|
|
|
|
if __name__ == '__main__':
|
|
db.drop_all()
|
|
db.create_all()
|
|
ro1 = Role(name='admin')
|
|
ro2 = Role(name='user')
|
|
db.session.add_all([ro1,ro2])
|
|
db.session.commit()
|
|
us1 = User(name='wang',email='wang@163.com',pswd='123456',role_id=ro1.id)
|
|
us2 = User(name='zhang',email='zhang@189.com',pswd='201512',role_id=ro2.id)
|
|
us3 = User(name='chen',email='chen@126.com',pswd='987654',role_id=ro2.id)
|
|
us4 = User(name='zhou',email='zhou@163.com',pswd='456789',role_id=ro1.id)
|
|
db.session.add_all([us1,us2,us3,us4])
|
|
db.session.commit()
|
|
app.run(debug=True) |