flask操作数据库

先命令行创建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()
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值