关于使用Flask + MySQL + Flask-SQLAlchemy的问题

时间:2014-01-13 03:11:30

标签: mysql sqlalchemy flask

我将使用Flask + MySQL + Flask-SQLAlchemy构建一个站点,但是,在阅读了一些教程之后,我有一些问题:

  • Flask-SQLAlchemy至少可以通过两种方式导入:

http://pythonhosted.org/Flask-SQLAlchemy/quickstart.html

from flask.ext.sqlalchemy import SQLAlchemy

http://flask.pocoo.org/docs/patterns/sqlalchemy/

from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker
from sqlalchemy.ext.declarative import declarative_base

第一种方式似乎更方便。为什么Pocoo团队选择使用第二种方式?

我需要一些关于MySQL + Flask-SQLAlchemy的好例子,而大多数例子是SQLite + MySQL + Flask-SQLAlchemy。

2 个答案:

答案 0 :(得分:4)

我一直使用MySQL + Flask-SQLAlchemy进行编码,我在pythonanywhere.com上托管我的应用程序,就像@Sean Vieira所说的那样,你的代码将在任何Relational数据库上运行,你唯一需要改变的是连接字符串到您喜欢的数据库,例如使用Mysql,这将保存在一个名为config.py的文件中[您可以使用任何其他名称保存]

var b = JSON.parse('[{"label":"234"},{"label":"Sunny AG, Sunny Me- Be Cars, Ben., Bu 60, DE 71059, Sind, Discharge p no. 9711\\r\\n"},{"label":"C207346"}]');

然后在你的主应用程序中,你将像这样导入它

SQLALCHEMY_DATABASE_URI = 'mysql://username:password@localhost/yourdatabase'
SQLALCHEMY_POOL_RECYCLE = 280
SQLALCHEMY_POOL_SIZE = 20
SQLALCHEMY_TRACK_MODIFICATIONS = True 

您需要的是确保您的模型对应于数据库表,如下面的模型

 from flask import Flask
 from flask_sqlalchemy import SQLAlchemy

 # Create an Instance of Flask
 application = Flask(__name__)

 # Include config from config.py
 application.config.from_object('config')
 application.secret_key = 'some_secret_key'

 # Create an instance of SQLAlchemy
 db = SQLAlchemy(application)

然后您可以了解SQLAlchemy执行优化查询的强大功能

答案 1 :(得分:2)

Flask-SQLAlchemy由Armin(Flask的创建者)编写,使其易于使用SQLAlchemy。 Flask文档中描述的模式是没有选择使用Flask-SQLAlchemy扩展时使用的模式。

对于MySQL与SQLite,SQLAlchemy ORM的全部意义在于(大多数情况下)可以忽略您正在运行的数据库。无论您要连接的数据库是什么,SomeModel.filter(SomeModel.column == 'value')都会一样。