
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
就可以了。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)