繁体   English   中英

GCP App Engine 中的 Python 语法错误

[英]Python Syntax Error within GCP App Engine

我正在尝试在 GCP 应用程序引擎中使用 python 建立与 MySQL 数据库的连接。 目标是一个简单的测试,能够让它返回/打印数据库表的第一行。

使用我的 jupyter 笔记本,我可以使用sqlalchemy连接 python 并打印第一行。

所以我尝试在应用引擎中修改最初的“hello world”教程来做同样的事情。 但是当我将代码复制到main.py文件时,当我尝试在第 7 行使用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 是一个装饰器,它需要一个 function 来装饰,不能放在任何地方,像这样:

@app.route('/')
def hello_world():
    # your code here
    return 'Hello, World!'

您的问题实际上与第 7 行的代码无关,而是您在它之前缺少 function 定义。 我真的怀疑它在 Jupyter 中是否有效。

解决方案:在代码开头添加一个function定义,修复语法错误。

从 polku 的回答中发现了这一点,再次感谢。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM