python - Flask 无法连接到 RDS MySQL
问题描述
我在 PostgreSQL 中使用了 flask-sqlalchemy。现在,我切换到 RDS MySQL,所以我改变了 SQLALCHEMY_DATABASE_URI 形式
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgres://**************'
至
app.config['SQLALCHEMY_DATABASE_URI'] = "mysql+pymysql://{username}:{password}@{endpoint}:{port}?charset=utf8"
在此之后,我像这样初始化应用程序
from flask import Flask, render_template, request, logging, Response, redirect, flash, jsonify
from flask_cors import CORS
from flask_sqlalchemy import SQLAlchemy
from flask_marshmallow import Marshmallow
app = Flask(__name__)
db = SQLAlchemy(app)
ma = Marshmallow(app)
class User(db.Model):
__tablename__ = 'user'
id = db.Column(db.String(8), primary_key=True)
name = db.Column(db.String, unique=False)
email = db.Column(db.String, unique=False)
def __init__(self,params):
self.id = params['id']
self.name = params['name']
self.email = params['email']
class UserSchema(ma.ModelSchema):
class Meta:
model = User
@app.route('/get_user', methods=['GET'])
def get_user():
userid = request.args['id']
user = User.query.get(userid)
return user
if __name__ == '__main__':
app.run()
但是该应用程序无法连接到服务器。(我确认用户名、密码、端点、端口正确并从 mysql 工作台连接)
我读了这个问题。 使用 Flask SQLAlchemy 从 SQLite 切换到 MySQL, 所以我安装了 pymysql,但它没有用。
当我的应用程序尝试连接数据库时,会显示此错误消息。尽管我使用的是mysql,但似乎调用了psycopg2。
你能给我一些建议吗?
psycopg2.ProgrammingError: invalid dsn: invalid connection option "mysql+pymysql://mysql+pymysql://{username}:{password}{endpoint}:{port}?charset"
解决方案
它可能是 uri 格式: MySQL 中的“dialect+driver://username:password@host:port/database” “mysql://username:password@localhost:####/mydatabase” https://flask- sqlalchemy.palletsprojects.com/en/2.x/config/#connection-uri-format
推荐阅读
- angular - 如何基于两个现有的 Observable 数组创建一个新的 Observable 数组,
- android-espresso - 字段不可见,但测试通过
- python - 如何链接 Python 函数调用,因此行为如下
- python - 使用 OpenApi 部署 Cloud Endpoint 失败
- asp.net-core - ASP.Net Core 2.2 日志记录
- ios - 在 swift 中为 DeviceCheck API 生成授权不记名令牌时面临问题
- c# - Microsoft Fakes Exception 测试用例在 catch 块中停止解决方案
- python - 计数字符串参数
- c# - 将现有字段添加到现有 FIX 消息
- azure - 获取多租户应用程序中来宾/外部用户的 appRoles