ValueError:int()的无效文字,基数为10:使用SQLALCHEMY和Google App Engine的“密码”

时间:2018-07-31 21:21:32

标签: python google-app-engine sqlalchemy

我一直在努力与SQLAlchemy并使其与Google App Engine一起使用。当然,它在本地有效:eyeroll :.
我一辈子都想不通。

这是日志:

2018-07-31 15:50:10.109 CDT
Traceback (most recent call last):
2018-07-31 15:50:10.109 CDT
  File "/base/data/home/apps/s~projectname/20180731t154917.411530389303386639/lib/flask/app.py", line 1982, in wsgi_app
2018-07-31 15:50:10.109 CDT
    response = self.full_dispatch_request()
2018-07-31 15:50:10.110 CDT
  File "/base/data/home/apps/s~projectname/20180731t154917.411530389303386639/lib/flask/app.py", line 1614, in full_dispatch_request
2018-07-31 15:50:10.110 CDT
    rv = self.handle_user_exception(e)
2018-07-31 15:50:10.110 CDT
  File "/base/data/home/apps/s~projectname/20180731t154917.411530389303386639/lib/flask/app.py", line 1517, in handle_user_exception
2018-07-31 15:50:10.110 CDT
    reraise(exc_type, exc_value, tb)
2018-07-31 15:50:10.110 CDT
  File "/base/data/home/apps/s~projectname/20180731t154917.411530389303386639/lib/flask/app.py", line 1612, in full_dispatch_request
2018-07-31 15:50:10.110 CDT
    rv = self.dispatch_request()
2018-07-31 15:50:10.110 CDT
  File "/base/data/home/apps/s~projectname/20180731t154917.411530389303386639/lib/flask/app.py", line 1598, in dispatch_request
2018-07-31 15:50:10.110 CDT
    return self.view_functions[rule.endpoint](**req.view_args)
2018-07-31 15:50:10.110 CDT
  File "/base/data/home/apps/s~projectname/20180731t154917.411530389303386639/main.py", line 133, in signup
2018-07-31 15:50:10.110 CDT
    db.session.add(new_user)
2018-07-31 15:50:10.110 CDT
  File "/base/data/home/apps/s~projectname/20180731t154917.411530389303386639/lib/sqlalchemy/orm/scoping.py", line 153, in do
2018-07-31 15:50:10.110 CDT
    return getattr(self.registry(), name)(*args, **kwargs)
2018-07-31 15:50:10.110 CDT
  File "/base/data/home/apps/s~projectname/20180731t154917.411530389303386639/lib/sqlalchemy/util/_collections.py", line 1001, in __call__
2018-07-31 15:50:10.110 CDT
    return self.registry.setdefault(key, self.createfunc())
2018-07-31 15:50:10.110 CDT
  File "/base/data/home/apps/s~projectname/20180731t154917.411530389303386639/lib/sqlalchemy/orm/session.py", line 2950, in __call__
2018-07-31 15:50:10.110 CDT
    return self.class_(**local_kw)
2018-07-31 15:50:10.110 CDT
  File "/base/data/home/apps/s~projectname/20180731t154917.411530389303386639/lib/flask_sqlalchemy/__init__.py", line 143, in __init__
2018-07-31 15:50:10.110 CDT
    bind = options.pop('bind', None) or db.engine
2018-07-31 15:50:10.110 CDT
  File "/base/data/home/apps/s~projectname/20180731t154917.411530389303386639/lib/flask_sqlalchemy/__init__.py", line 877, in engine
2018-07-31 15:50:10.110 CDT
    return self.get_engine()
2018-07-31 15:50:10.110 CDT
  File "/base/data/home/apps/s~projectname/20180731t154917.411530389303386639/lib/flask_sqlalchemy/__init__.py", line 896, in get_engine
2018-07-31 15:50:10.110 CDT
    return connector.get_engine()
2018-07-31 15:50:10.110 CDT
  File "/base/data/home/apps/s~projectname/20180731t154917.411530389303386639/lib/flask_sqlalchemy/__init__.py", line 553, in get_engine
2018-07-31 15:50:10.110 CDT
    info = make_url(uri)
2018-07-31 15:50:10.110 CDT
  File "/base/data/home/apps/s~projectname/20180731t154917.411530389303386639/lib/sqlalchemy/engine/url.py", line 211, in make_url
2018-07-31 15:50:10.110 CDT
    return _parse_rfc1738_args(name_or_url)
2018-07-31 15:50:10.110 CDT
  File "/base/data/home/apps/s~projectname/20180731t154917.411530389303386639/lib/sqlalchemy/engine/url.py", line 267, in _parse_rfc1738_args
2018-07-31 15:50:10.110 CDT
    return URL(name, **components)
2018-07-31 15:50:10.110 CDT
  File "/base/data/home/apps/s~projectname/20180731t154917.411530389303386639/lib/sqlalchemy/engine/url.py", line 60, in __init__
2018-07-31 15:50:10.110 CDT
    self.port = int(port)
2018-07-31 15:50:10.110 CDT
**ValueError: invalid literal for int() with base 10: 'password'**

这是我的 app.yaml:

runtime: python27
api_version: 1
threadsafe: true

# [START handlers]
handlers:
- url: /static
  static_dir: static
- url: /.*
  script: main.app
# [END handlers]

# [START libraries]
libraries:
- name: MySQLdb
  version: 'latest'
 #[END libraries]

 # [START env_variables]
env_variables:
    CLOUDSQL_CONNECTION_NAME: 'projectName:us-central1:dbname'
    CLOUDSQL_USER: root
    CLOUDSQL_PASSWORD: password
# [END env_variables]

这是我的 main.py

app = Flask(__name__)

# Google Cloud SQL information
CLOUDSQL_USER = 'root'
CLOUDSQL_PASSWORD = 'password'
CLOUDSQL_DB_NAME = 'dbname'
GAE_PROJECT_ID = 'projectname'
CLOUDSQL_CONNECTION_NAME = 'projectName:us-central1:dbname'


app.config['SQLALCHEMY_DATABASE_URI'] = (
    'mysql+pymysql://root:password/dbname'
    '?unix_socket=/cloudsql/projectName:us-central1:dbname')
app.config['SECRET_KEY'] = 'Thisissupposedtobesecret!'
Bootstrap = Bootstrap(app)
db = SQLAlchemy(app)

1 个答案:

答案 0 :(得分:2)

来自https://cloud.google.com/appengine/docs/flexible/python/using-cloud-sql

env_variables:
    # Replace user, password, database, and instance connection name with the values obtained
    # when configuring your Cloud SQL instance.
    SQLALCHEMY_DATABASE_URI: >-
      mysql+pymysql://USER:PASSWORD@/DATABASE?unix_socket=/cloudsql/INSTANCE_CONNECTION_NAME

您缺少@符号