【发布时间】:2019-10-07 19:20:30
【问题描述】:
我在 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 工作台连接)
我读过这个问题。 Switching from SQLite to MySQL with Flask SQLAlchemy 所以我安装了pymysql,但是没有用。
当我的应用程序尝试连接数据库时,会显示此错误消息。 虽然我使用的是 mysql,但似乎调用了 psycopg2。
你能给我一些建议吗?
psycopg2.ProgrammingError: invalid dsn: invalid connection option "mysql+pymysql://mysql+pymysql://{username}:{password}{endpoint}:{port}?charset"
【问题讨论】:
-
可能您的连接字符串缺少'@' b/w 密码和端点..
Conn = "mysql+pymysql://{username}:{password}@{endpoint}:{port}/{database}?charset=utf8" -
感谢您的建议抱歉,我的问题中遗漏了“@”,我更正了问题
-
当你创建引擎时。你在做 engine.connect() 吗?你能放完整的堆栈跟踪吗?
-
你能把完整的堆栈跟踪放在你的问题中
-
是的,我想查看整个错误日志。
标签: python mysql flask flask-sqlalchemy amazon-rds