Google 云网络应用未显示自定义 Python 代码
Google Cloud web app not displaying custom Python code
我目前通过 Google Cloud 的 App Engine 有一个“可用的”网络应用程序。
当我访问我的网络应用程序时,唯一显示的是“欢迎使用我的 Python 程序!”在我的 index.html 文件中。
我正在尝试显示 Python 代码的其余部分,这些代码打印一些关于时间的字符串。
我的文件中的内容不起作用,我不确定自己做错了什么。我试过弄乱 Python 代码,因为我认为这就是问题所在。也许我没有在正确的地方调用函数?
就文件而言,这是我所拥有的:
requirements.txt
Flask==2.0.2
pytz==2020.1
gunicorn==19.3.0
app.yaml
runtime: python
env: flex
entrypoint: gunicorn -b :$PORT main:app
runtime_config:
python_version: 3
handlers:
- url: /static
static_dir: static
- url: /.*
script: auto
manual_scaling:
instances: 1
resources:
cpu: 1
memory_gb: 0.5
disk_size_gb: 10
main.py
import pytz
from datetime import datetime
from flask import Flask, render_template
app = Flask(__name__)
def all_about_time():
#Prints local date.
current_time = datetime.now()
local_date = datetime.strftime(current_time, '%b %d, %Y')
print('Today\'s date is: ' + str(local_date))
#Prints out the time on the east coast. Helps give context on market hours.
eastern_time = datetime.strftime(current_time.astimezone(pytz.timezone('US/Eastern')), '%I:%M %p')
print('Time on the East Coast is currently: ' + eastern_time)
#This logic block dictates whether the market is closed or open. So far does not account for holidays.
day_of_week = datetime.strftime(current_time.astimezone(pytz.timezone('US/Eastern')), '%A')
dt_east = int(datetime.strftime(current_time.astimezone(pytz.timezone('US/Eastern')), '%H%M'))
if 930 <= dt_east <= 1600 and (day_of_week != 'Saturday' and day_of_week != 'Sunday'):
print('The market is open!')
else:
print('The market is closed.')
@app.route("/")
def hello():
all_about_time()
return render_template('index.html')
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<script src="{{ url_for('static', filename='script.js') }}"></script>
<link type="text/css" rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>MyPythonProgram</title>
</head>
<body>
<h1>Welcome to my Python Program!</h1>
</body>
</html>
尝试将 all_about_time
中的最后一条语句更改为:
if 930 <= dt_east <= 1600 and (day_of_week != 'Saturday' and day_of_week != 'Sunday'):
return('open')
else:
return('closed')
然后更改以下内容:
@app.route("/")
def hello():
status = all_about_time()
return render_template('index.html', status=status)
然后更改index.html
:
<!DOCTYPE html>
<html lang="en">
<head>
<script src="{{ url_for('static', filename='script.js') }}"></script>
<link type="text/css" rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>MyPythonProgram</title>
</head>
<body>
<h1>The market is {{ status }}</h1>
</body>
</html>
我鼓励阅读 Flask 的(优秀)documentation 以了解其工作原理。
我没有 运行 你的代码,但是假设 all_about_time
时间正常,它会打印一个字符串到(标准)输出。 hello
运行 调用 all_about_time
(打印字符串)和 then (重要的是)该函数呈现 index.html
模板,该模板生成您观察到的输出 Welcome to my Python Program!
。尽管 all_about_time
打印了一些东西,但输出到控制台并且 未 包含在浏览器中呈现的页面中。
变化最小:
all_about_time
returns 一个字符串(open
或 closed
)。
hello
调用 all_about_time
并将结果(open
或 closed
)分配给 status
.
status
然后传给模板渲染
- 模板现在包含一个变量
{{ status }}
,它将替换为 status
的实际值,即(希望如此)open
或 closed
我目前通过 Google Cloud 的 App Engine 有一个“可用的”网络应用程序。 当我访问我的网络应用程序时,唯一显示的是“欢迎使用我的 Python 程序!”在我的 index.html 文件中。
我正在尝试显示 Python 代码的其余部分,这些代码打印一些关于时间的字符串。 我的文件中的内容不起作用,我不确定自己做错了什么。我试过弄乱 Python 代码,因为我认为这就是问题所在。也许我没有在正确的地方调用函数?
就文件而言,这是我所拥有的:
requirements.txt
Flask==2.0.2
pytz==2020.1
gunicorn==19.3.0
app.yaml
runtime: python
env: flex
entrypoint: gunicorn -b :$PORT main:app
runtime_config:
python_version: 3
handlers:
- url: /static
static_dir: static
- url: /.*
script: auto
manual_scaling:
instances: 1
resources:
cpu: 1
memory_gb: 0.5
disk_size_gb: 10
main.py
import pytz
from datetime import datetime
from flask import Flask, render_template
app = Flask(__name__)
def all_about_time():
#Prints local date.
current_time = datetime.now()
local_date = datetime.strftime(current_time, '%b %d, %Y')
print('Today\'s date is: ' + str(local_date))
#Prints out the time on the east coast. Helps give context on market hours.
eastern_time = datetime.strftime(current_time.astimezone(pytz.timezone('US/Eastern')), '%I:%M %p')
print('Time on the East Coast is currently: ' + eastern_time)
#This logic block dictates whether the market is closed or open. So far does not account for holidays.
day_of_week = datetime.strftime(current_time.astimezone(pytz.timezone('US/Eastern')), '%A')
dt_east = int(datetime.strftime(current_time.astimezone(pytz.timezone('US/Eastern')), '%H%M'))
if 930 <= dt_east <= 1600 and (day_of_week != 'Saturday' and day_of_week != 'Sunday'):
print('The market is open!')
else:
print('The market is closed.')
@app.route("/")
def hello():
all_about_time()
return render_template('index.html')
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<script src="{{ url_for('static', filename='script.js') }}"></script>
<link type="text/css" rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>MyPythonProgram</title>
</head>
<body>
<h1>Welcome to my Python Program!</h1>
</body>
</html>
尝试将 all_about_time
中的最后一条语句更改为:
if 930 <= dt_east <= 1600 and (day_of_week != 'Saturday' and day_of_week != 'Sunday'):
return('open')
else:
return('closed')
然后更改以下内容:
@app.route("/")
def hello():
status = all_about_time()
return render_template('index.html', status=status)
然后更改index.html
:
<!DOCTYPE html>
<html lang="en">
<head>
<script src="{{ url_for('static', filename='script.js') }}"></script>
<link type="text/css" rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>MyPythonProgram</title>
</head>
<body>
<h1>The market is {{ status }}</h1>
</body>
</html>
我鼓励阅读 Flask 的(优秀)documentation 以了解其工作原理。
我没有 运行 你的代码,但是假设 all_about_time
时间正常,它会打印一个字符串到(标准)输出。 hello
运行 调用 all_about_time
(打印字符串)和 then (重要的是)该函数呈现 index.html
模板,该模板生成您观察到的输出 Welcome to my Python Program!
。尽管 all_about_time
打印了一些东西,但输出到控制台并且 未 包含在浏览器中呈现的页面中。
变化最小:
all_about_time
returns 一个字符串(open
或closed
)。hello
调用all_about_time
并将结果(open
或closed
)分配给status
.status
然后传给模板渲染- 模板现在包含一个变量
{{ status }}
,它将替换为status
的实际值,即(希望如此)open
或closed