如何使用SQLAlchemy将远程MySQL数据库连接到Flask应用程序?

5

我希望能将我的 Flask 应用程序连接到在线 MySQL 数据库,这样就可以摆脱本地主机的限制。

以下是我的代码:

from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy
import os
import uuid
from werkzeug.security import generate_password_hash , check_password_hash

app = Flask(__name__)

app.config['SECRET_KEY'] = 'thisissecret'
# app.config['SQLALCHEMY_DATABASE_URI'] = os.environ['sqlite:////Users/confuapplication/PycharmProjects/untitled/.db']
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://saifaliunity:123123123!@saifaliunity.mysql.pythonanywhere-services.com/saifaliunity$todo';
# app.config['SQLALCHEMY_DATABASE_URI'] = os.environ['DATABASE_URL']

db = SQLAlchemy(app)

这就是本地环境的含义,我已经在网上设置了MySQL和Python应用程序,并想将dbname、host、username和password设置到Flask应用程序中。但不知道该如何操作。

使用下面的答案后,出现了以下错误日志。

2019-02-26 10:16:54,896: Error running WSGI application
2019-02-26 10:16:54,900: ModuleNotFoundError: No module named 'flask_app'
2019-02-26 10:16:54,900:   File "/var/www/saifaliunity_pythonanywhere_com_wsgi.py", line 16, in <module>
2019-02-26 10:16:54,900:     from flask_app import app as application  # noqa
2019-02-26 10:16:54,901: ***************************************************
2019-02-26 10:16:54,901: If you're seeing an import error and don't know why,
2019-02-26 10:16:54,901: we have a dedicated help page to help you debug: 
2019-02-26 10:16:54,901: https://help.pythonanywhere.com/pages/DebuggingImportError/
2019-02-26 10:16:54,902: ***************************************************
2019-02-26 12:58:20,238: Error running WSGI application
2019-02-26 12:58:20,278: ModuleNotFoundError: No module named 'flask_app'
2019-02-26 12:58:20,279:   File "/var/www/saifaliunity_pythonanywhere_com_wsgi.py", line 16, in <module>
2019-02-26 12:58:20,279:     from flask_app import app as application  # noqa
2019-02-26 12:58:20,279: ***************************************************
2019-02-26 12:58:20,280: If you're seeing an import error and don't know why,
2019-02-26 12:58:20,280: we have a dedicated help page to help you debug: 
2019-02-26 12:58:20,280: https://help.pythonanywhere.com/pages/DebuggingImportError/
2019-02-26 12:58:20,280: ***************************************************
2019-02-26 12:58:21,842: Error running WSGI application
2019-02-26 12:58:21,843: ModuleNotFoundError: No module named 'flask_app'
2019-02-26 12:58:21,843:   File "/var/www/saifaliunity_pythonanywhere_com_wsgi.py", line 16, in <module>
2019-02-26 12:58:21,843:     from flask_app import app as application  # noqa
2019-02-26 12:58:21,844: ***************************************************
2019-02-26 12:58:21,844: If you're seeing an import error and don't know why,
2019-02-26 12:58:21,844: we have a dedicated help page to help you debug: 
2019-02-26 12:58:21,844: https://help.pythonanywhere.com/pages/DebuggingImportError/
2019-02-26 12:58:21,844: ***************************************************
1个回答

5

所以应该在这个函数中使用os.path.expanduser()吗?还是不用它传递? - Saif Ali
1
你不需要使用 expanduser(),它用于将 "~" 替换为用户主目录的完整路径。 - luxcem
但仍然没有连接成功。 - Saif Ali
@Debendra,我已经更新了问题,你现在可以帮忙吗? - Saif Ali
1
首先激活您的虚拟环境。它还没有被激活。 - Debendra
感谢您的回答,已选择。 - Saif Ali

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接