先命令行创建second_flask数据库
下列代码:
flask中创建Role和User数据表
manager为表的创建和迁移
'/'中的内容为flask对数据库的增删改查
# -*- coding:utf-8 -*-
from flask import Flask
from flask_sqlalchemy import SQLAlchemy # 操作数据库的扩展包
from flask_script import Manager # 用命令操作的扩展包
from flask_migrate import Migrate,MigrateCommand # 操作数据库迁移文件的扩展包
import pymysql
from flask_cors import CORS
app = Flask(__name__)
CORS(app,supports_credentials=True)
app.debug = True
app.config["SQLALCHEMY_DATABASE_URI"] = "mysql+pymysql://root:123@localhost/second_flask"
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
db = SQLAlchemy(app)
manager = Manager(app)
# 创建迁移对象
migrate = Migrate(app,db)
# 将迁移文件的命令添加到‘db’中
manager.add_command('db',MigrateCommand)
class Role(db.Model):
__tablename__ = "table_roles"
id = db.Column(db.Integer,primary_key=True)
name = db.Column(db.String(16),unique=True)
info = db.Column(db.String(100))
Users = db.relationship("User",backref='role')
class User(db.Model):
__tablename__ = "table_users"
id = db.Column(db.Integer,primary_key=True)
name = db.Column(db.String(16),unique=True)
info = db.Column(db.String(200))
role_id = db.Column(db.Integer,db.ForeignKey("table_roles.id"))
@app.route('/login',methods=['POST'])
def login():
data = json.loads(request.form.get('data'))
username = data['username']
password = data['password']
print (username)
print (password)
aaa = User.query.get(1)
# print(aaa.id,aaa.name)
print(aaa.id)
return "46575"
@app.route('/')
def hello_world():
#增加一条信息到Role数据表中
# 方式1:
# aaa = Role()
# aaa.name = 'asfdsdaf'
# aaa.info = 'fasdfa'
# db.session.add(aaa)
#方式2:
# db.session.add(Role(name='asdfg',info='aaaaa'))
# db.session.commit()
#增加多条信息到Role数据表中
# db.session.add_all([Role(name='name_2',info='aaaaa'),Role(name='name_1',info='aaa')])
# db.session.commit()
# 获取所有数据
users=Role.query.all()
for user in users:
print(user.name)
# 获取第一条数据
user1=Role.query.first()
print(user1.name)
# 获取name=zhangsan的user
user2=Role.query.filter_by(name='name_2').first()
print(user2.name)
#更新数据
# user3 = Role.query.filter_by(name='zhangsan', id=1).first()
# user3.name='zhangsi'
# db.session.commit()
#删除
# user3 = Role.query.filter_by(name='zhangsi', id=1).first()
# db.session.delete(user3)
# db.session.commit()
return 'Hello World!'
if __name__ == '__main__':
manager.run()