我怎样才能使用正确的路由在 Flask 中显示 HTML 页面?
How can I use the correct routing to display an HTML page with Flask?
我迷失了 python 和 flask,因为我不明白路由结构如何在 HTML 页面之间导航。
部署到heroku我的结构是:
/my_app_name/
app.py
config.py
drivers.html
Procfile
requirements.txt
app.py 文件是:
import os
from flask import Flask, render_template, request, url_for
from flask.ext.sqlalchemy import SQLAlchemy
import json
app = Flask(__name__)
db = SQLAlchemy(app)
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello World from Python!'
@app.route('/')
def drivers():
drivers = db.drivers.select()
return render_template('drivers.html')
#return HttpResponse('/drivers.html', json.dumps(result), content_type='application/json')
if __name__ == '__main__':
app.run(debug=True)
config.py 是:
SQLALCHEMY_DATABASE_URI = 'heroku_database_uri_string) #connection is OK, no problem here
drivers.html 是:
{% block body %}
<ul>
{% for driver in drivers %}
<li><h2>{{ driver.driver_name }}</h2>
</ul>
{% endblock %}
当我导航到 myapp.heroku.com/ 时,我得到了 "hello world from pyhton",但是当我导航到 myapp.heroku.com/drivers.html
时
我收到“404”错误。
那么,2 个问题:
1) 为什么是 404?怎么了?
2) 我想是的,但是整个结构有缺陷吗?
你一定注意到了这几行:
@app.route(...)
在你的代码中。他们定义路线。您有两个指向“/”的处理程序,而您可能希望驱动程序处理程序指向“/drivers”:因此请更改您传递给 route
.
的参数
此外,您不应该考虑 HTML 页面,也不应该尝试为您的路线添加“.html”后缀。只需使用 "drivers",然后导航至 myapp.heroku.com/drivers.
最后,无需上传到 Heroku 进行测试:只需 运行 本地开发服务器即可。请注意,所有这些在 Flask 文档中都有详细描述;你应该读一读。
我迷失了 python 和 flask,因为我不明白路由结构如何在 HTML 页面之间导航。
部署到heroku我的结构是:
/my_app_name/
app.py
config.py
drivers.html
Procfile
requirements.txt
app.py 文件是:
import os
from flask import Flask, render_template, request, url_for
from flask.ext.sqlalchemy import SQLAlchemy
import json
app = Flask(__name__)
db = SQLAlchemy(app)
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello World from Python!'
@app.route('/')
def drivers():
drivers = db.drivers.select()
return render_template('drivers.html')
#return HttpResponse('/drivers.html', json.dumps(result), content_type='application/json')
if __name__ == '__main__':
app.run(debug=True)
config.py 是:
SQLALCHEMY_DATABASE_URI = 'heroku_database_uri_string) #connection is OK, no problem here
drivers.html 是:
{% block body %}
<ul>
{% for driver in drivers %}
<li><h2>{{ driver.driver_name }}</h2>
</ul>
{% endblock %}
当我导航到 myapp.heroku.com/ 时,我得到了 "hello world from pyhton",但是当我导航到 myapp.heroku.com/drivers.html
时我收到“404”错误。
那么,2 个问题:
1) 为什么是 404?怎么了?
2) 我想是的,但是整个结构有缺陷吗?
你一定注意到了这几行:
@app.route(...)
在你的代码中。他们定义路线。您有两个指向“/”的处理程序,而您可能希望驱动程序处理程序指向“/drivers”:因此请更改您传递给 route
.
此外,您不应该考虑 HTML 页面,也不应该尝试为您的路线添加“.html”后缀。只需使用 "drivers",然后导航至 myapp.heroku.com/drivers.
最后,无需上传到 Heroku 进行测试:只需 运行 本地开发服务器即可。请注意,所有这些在 Flask 文档中都有详细描述;你应该读一读。