python - GCP App Engine 中的 Python 语法错误
问题描述
我正在尝试在 GCP 应用程序引擎中使用 python 建立与 MySQL 数据库的连接。目标是一个简单的测试,能够让它返回/打印数据库表的第一行。
使用我的 jupyter 笔记本,我可以使用sqlalchemy
for python 连接并打印第一行。
所以我尝试在应用引擎中修改最初的“hello world”教程来做同样的事情。但是当我将代码复制到文件中时,当我尝试在第 7 行main.py
使用时,它给了我一个语法错误。create_enginge
任何人都知道为什么它是我main.py
在应用程序引擎中的文件中的语法错误,而不是在 jupyter 笔记本中?
from flask import Flask
import pandas as pd
import sqlalchemy as sa
import pymysql
app = Flask(__name__)
@app.route('/')
engine = sa.create_engine('''mysql+pymysql://{username}:
{password}@{host}:{port}/{db_name}''')
with engine.connect() as conn:
# Execute the query and fetch all results
response = conn.execute(
"SELECT * FROM table_name "
"LIMIT 1"
).fetchall()
# Print Results
for row in response:
print("sub_event_id = ", row[0], )
print("event_type = ", row[1])
print("date_time = ", row[2])
print("ip = ", row[3])
print("property_id = ", row[4])
print("contact_id = ", row[5])
print("address_id = ", row[6], "\n")
engine.dispose()
解决方案
@app.route 是一个装饰器,它需要一个函数来装饰,不能放在任何地方,像这样:
@app.route('/')
def hello_world():
# your code here
return 'Hello, World!'
您的问题不在于第 7 行的代码,而是您缺少前面的函数定义。我真的怀疑它在 Jupyter 中是否有效。
推荐阅读
- javascript - 按位运算 PHP 和 JS 不同
- android - 为android交叉编译一个C程序
- angular - 使用本地存储的用户进行角度登录,没有存储任何内容
- c# - 如何从以 wpf mvvm 模式作为窗口打开的视图模型关闭用户控件?
- python - Python Plotly - 多个下拉图,每个都有子图
- postgresql - 架构导入失败,“类型”ltree“不存在”
- angular - Identity Server 4 Angular Electron App 身份验证示例
- primefaces - 如何使用 pe:sheet 跨越行和列?
- swift - 在 Vapor 中使用第三方 OAuth API
- elixir - 如何在 Ecto 中使用复杂约束?