用flask链接mysql数据库的方法
这篇文章将为大家详细讲解有关用flask链接mysql数据库的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体步骤如下:
1.创建一个连接对象
首先下载flask_sqlalchemy 包,然后设置用于连接数据库的URI,
app.config['SQLALCHEMY_DATABASE_URI']='mysql://用户名:密码@127.0.0.1:3306/数据库名'
创建用来管理数据库的对象,注意参数需要和app产生联系
db = SQLAlchemy(app)
2.创建模型
这里创建一个简单的用户模型
classUser(db.Model):__tablename__='user'id=db.Column(db.Integer,primary_key=True)name=db.Column(db.String(20),unique=True)is_delete=db.Column(db.Boolean,default=False)email=db.Column(db.String(30),nullable=True)def__repr__(self):returnself.name
3.创建数据表
if __name__ == '__main__':
# 迁移数据库
db.create_all()
fromflaskimportFlaskfromflask_sqlalchemyimportSQLAlchemy#还需要安装pymysql库#初始化appapp=Flask(__name__)#连接数据库app.config['SQLALCHEMY_DATABASE_URI']='mysql+pymysql://root:123456@localhost/python_db'#SQLALCHEMY_DATABASE_URI#用于连接数据的数据库。#SQLALCHEMY_TRACK_MODIFICATIONS#如果设置成True(默认情况),#Flask-SQLAlchemy将会追踪对象的修改并且发送信号。#这需要额外的内存,如果不必要的可以禁用它。app.config['SQLALCHEMY_TRACK_MODIFICATIONS']=True#得到SQLAlchemy对象db=SQLAlchemy(app,use_native_unicode='utf8')#然后创建model对象classUser(db.Model):__tablename__='user_list'#(设置表名)id=db.Column(db.Integer,primary_key=True)#(设置主键)username=db.Column(db.String(255),unique=True)password=db.Column(db.String(255),unique=True)#返回一个可以用来表示对象的可打印字符串:(相当于java的toString)def__repr__(self):return'<User用户名:%r密码:%r>'%(self.username,self.password)#操作数据库#增defadd_object(user):db.session.add(user)db.session.commit()print("添加%r完成"%user.__repr__)user=User()user.username='占三'user.password='123456'add_object(user)#查(用到and的时候需要导入库fromsqlalchemyimportand_)defquery_object(user,query_condition_u,query_condition_p):result=user.query.filter(and_(user.username==query_condition_u,user.password==query_condition_p))print("查询%r完成"%user.__repr__)returnresult#删defdelete_object(user):result=user.query.filter(user.username=='11111').all()db.session.delete(result)db.session.commit()#改defupdate_object(user):result=user.query.filter(user.username=='111111').all()result.title='success2018'
关于用flask链接mysql数据库的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。