ora*_*nge 3 python mysql flask
所以我有主.py文件创建和配置Flask应用程序对象,并初始化MySQL.然后我想注册一些蓝图.
from flask import Flask
from flaskext.mysql import MySQL
app = Flask(__name__)
mysql = MySQL()
app.config['MYSQL_DATABASE_USER'] = 'root'
app.config['MYSQL_DATABASE_PASSWORD'] = 'root'
app.config['MYSQL_DATABASE_DB'] = 'EmpData'
app.config['MYSQL_DATABASE_HOST'] = 'localhost'
mysql.init_app(app)
from views1 import views1_blprnt
app.register_blueprint(views1_blprnt)
Run Code Online (Sandbox Code Playgroud)
但是views1.py我需要MySQL对象来获取连接和游标对象来执行查询.当然,当我尝试导入它时,我得到了ImportError.我已经阅读了一些类似的问题和解决方法,但所有这些都使用了SQLAlchemy.有人有任何想法如何解决它?
谢谢你的帮助,对不起我的英语.
Rob*_*kal 14
这里一个相当典型的模式是使用第三个模块,在其中初始化mysql以及要在蓝图中共享的任何其他资源.
我注意到人们倾向于称它为extensions.py.所以你可以在extension.py中做类似的事情:
from flaskext.mysql import MySQL
mysql = MySQL()
Run Code Online (Sandbox Code Playgroud)
在你的main.py中,这样的事情:
from extensions import mysql
app.config['MYSQL_DATABASE_USER'] = 'root'
app.config['MYSQL_DATABASE_PASSWORD'] = 'root'
app.config['MYSQL_DATABASE_DB'] = 'EmpData'
app.config['MYSQL_DATABASE_HOST'] = 'localhost'
mysql.init_app(app)
Run Code Online (Sandbox Code Playgroud)
您可以从所有蓝图中访问初始化的mysql实例,如下所示:
from extensions import mysql
mysql....
Run Code Online (Sandbox Code Playgroud)
还有其他解决方案,但这是我最常看到的.这也是我通常做的事情.
| 归档时间: |
|
| 查看次数: |
1559 次 |
| 最近记录: |