我将使用Flask + MySQL + 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团队选择使用第二种方式?
INSERT
IGNORE
或INNER JOIN
?如果我想编写本机SQL语句。如何用SQLAlchemy做到这一点? 我需要一些关于MySQL + Flask-SQLAlchemy的好例子,而大多数例子是SQLite + MySQL + Flask-SQLAlchemy。
答案 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')
都会一样。