![](/img/trans.png)
[英]How do I get my Python Flask app on an Ubuntu ec2 to connect with a MySQL db with RDS?
[英]Flask cannot connect to 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"
該錯誤消息建議使用調試器斷點或僅通過打印來檢查您的連接字符串。
print(app.config['SQLALCHEMY_DATABASE_URI'])
它可能是 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.