以 10 为底的 int() 的无效文字:'PORT'
invalid literal for int() with base 10: 'PORT'
我正在尝试连接到 Web 应用程序项目的 RDS 实例。我收到此错误:
ValueError: invalid literal for int() with base 10: 'PORT'
追溯:
.conda/envs/src/lib/python3.6/site-packages/sqlalchemy/engine/
url.py", line 60, in __init__
这是我的 RDS 请求的格式
DATABASE_URL: mysql+pymysql://USER:PASSWORD@HOST:PORT/DBNAME
我在终端中运行这个:
export DATABASE_URL=mysql+pymysql://USER:PASSWORD@HOST:PORT/DBNAME
export HOST=myhost
export USER=myuser
export PASSWORD=mypassword
export DBNAME=mydbname
export PORT=3306
python create_db.py
所以我的 PORT 读取不正确,我也不知道为什么。我所做的所有研究都表明这个问题去年已在 Oracle 中修复,但我使用的是 MySQL.
这是我的 create_db.py 和 schema.py 的 RDS
# create_db.py
from schema import db
if __name__=='__main__':
# create a new table scheme as defined in the schema script
db.create_all()
# schema.py
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import os
class Config(object):
"""using the global variable saving in command line"""
SECRET_KEY = os.environ.get('SECRET_KEY') or 'secret-key'
SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL')
SQLALCHEMY_TRACK_MODIFICATIONS = False
application = Flask(__name__)
application.config.from_object(Config)
db = SQLAlchemy(application)
class Patient(db.Model):
__tablename__ = 'Patient'
id = db.Column(db.Integer, primary_key=True,autoincrement=True)
...
def __repr__(self):
return '<User %r'> % self.id
您在环境变量中的连接字符串完全无效 - 它不会被您另外添加的值替换。将其更改为:
export DATABASE_URL=mysql+pymysql://myuser:mypassword@myhost:3306/mydbname
并将值替换为真实值。最终结果或多或少应该是这样的:
export DATABASE_URL=mysql+pymysql://test_user:test_password@localhost:3306/testdb
我正在尝试连接到 Web 应用程序项目的 RDS 实例。我收到此错误:
ValueError: invalid literal for int() with base 10: 'PORT'
追溯:
.conda/envs/src/lib/python3.6/site-packages/sqlalchemy/engine/
url.py", line 60, in __init__
这是我的 RDS 请求的格式
DATABASE_URL: mysql+pymysql://USER:PASSWORD@HOST:PORT/DBNAME
我在终端中运行这个:
export DATABASE_URL=mysql+pymysql://USER:PASSWORD@HOST:PORT/DBNAME
export HOST=myhost
export USER=myuser
export PASSWORD=mypassword
export DBNAME=mydbname
export PORT=3306
python create_db.py
所以我的 PORT 读取不正确,我也不知道为什么。我所做的所有研究都表明这个问题去年已在 Oracle 中修复,但我使用的是 MySQL.
这是我的 create_db.py 和 schema.py 的 RDS
# create_db.py
from schema import db
if __name__=='__main__':
# create a new table scheme as defined in the schema script
db.create_all()
# schema.py
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import os
class Config(object):
"""using the global variable saving in command line"""
SECRET_KEY = os.environ.get('SECRET_KEY') or 'secret-key'
SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL')
SQLALCHEMY_TRACK_MODIFICATIONS = False
application = Flask(__name__)
application.config.from_object(Config)
db = SQLAlchemy(application)
class Patient(db.Model):
__tablename__ = 'Patient'
id = db.Column(db.Integer, primary_key=True,autoincrement=True)
...
def __repr__(self):
return '<User %r'> % self.id
您在环境变量中的连接字符串完全无效 - 它不会被您另外添加的值替换。将其更改为:
export DATABASE_URL=mysql+pymysql://myuser:mypassword@myhost:3306/mydbname
并将值替换为真实值。最终结果或多或少应该是这样的:
export DATABASE_URL=mysql+pymysql://test_user:test_password@localhost:3306/testdb