如何在flask中使用mysql数据库

如何在flask中使用mysql数据库,第1张

1、首先搞明白flask框架中,一个请求的被处理过程,以及页面是如何渲染的;这一个过程中, 不需要考虑mysql, 你可以直接用list、dict这些数据结构模拟一些数据, 并让jinja2模板来显示你的数据

2、学习下mysqldb的使用

3、在flask中使用mysqldb即可

from sqlalchemy import create_enginefrom sqlalchemy.orm import sessionmakerfrom sqlalchemy.ext.declarative import declarative_base Base = declarative_base()class Database(object):def __init__(self, configure):self.configure = configureself.engine = create_engine(self.configure.MYSQL_SQLALCHEMY_URL)self.Session = sessionmaker(bind=self.engine)self.session = self.Session() from sqlalchemy import Column, Integer, String, Sequenceclass User(Base):""" user table"""__tablename__ = 'user'id = Column(Integer, Sequence("USER_ID_SEQ"), primary_key=True)username = Column(String(256), doc=u"用户名")password = Column(String(256), doc=u"密码") def __repr__(self):return "<User(username='%s', password='%s', id='%s')" % (self.username, self.password, self.id)

使用sqlalchemy来连接mysql并且查询其中的user表的方法,你可以试试。

显示页面的话:

from flask import jsonify@app.route("/")def main():db = Database(config)result = db.session.query(User).filter_by(username="aa").first()return jsonify({"result":result})

会把结果显示在页面上,是以json方式显示的

这个问题经常难道新手一下,因为大部分教程里(包括经典的《Flask Web开发》一书),告诉了我们如何使用flask-sqlalchemy *** 作sqlite,但在生产环境(线上网站)上,我们肯定是使用MySQL或其他,而大部分的教程里,又告诉我们flask-sqlalchemy使用MySQL的方式是:

mysql://username:password@server/db

结果我们照葫芦画瓢的来一下,发现压根不行,写好的网站一跟数据库沾边就报错。

Python和MySQL是「两个国家的人」,他们互不相通,因而需要一个中间代理,让双方互通有无,跟翻译一样(这比喻不准确,但足够你明白意思就行)。翻译又有很多选择,不同的翻译各有特色。

题主解决问题选择的翻译是「flask-mysqldb」,其背后的主子是「MySQL-python」。恩,说到这里你应该知道,「flask-xxx」这样的包都是对背后主子进行了适合Flask封装的插件,跟包子皮一样,里面的馅才是重点,「flask-mysqldb」的馅是「MySQL-python」。

而我要推荐的是另一个翻译:PyMySQL,这玩意的好处是可以做异步(「MySQL-python」也可以,个人口味罢了),简而言之,网站访问量大了就需要考虑异步,现在别管这是啥子。这玩意的安装方式是:

pip install PyMySQL

之后,数据库连接由:

mysql://username:password@server/db

改为

mysql+pymysql://username:password@server/db

就可以了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/8547773.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-17
下一篇2023-04-17

发表评论

登录后才能评论

评论列表(0条)

    保存