Cro*_*hat 3 python heroku flask
我正在用Python构建一个网站(使用heroku),我想创建一个"最新的提交"部分.也就是说,当我@app.route(blah)在我的Python应用程序中创建一个新的时,我希望在我的主页上的"最新提交"部分下显示新页面的链接.
这可能吗?
编辑:这是我的代码
import os
import json
from flask import Flask, render_template, url_for
from werkzeug.routing import Map, Rule, NotFound, RequestRedirect, BaseConverter
app = Flask(__name__)
@app.route('/')
def index():
return render_template('welcome.html')
@app.route('/about', endpoint='about')
def index():
return render_template('about.html')
@app.route('/contact', endpoint='contact')
def index():
return render_template('contact.html')
@app.route('/all-links', endpoint='all-links')
def all_links():
links = []
for rule in app.url_map.iter_rules():
url = url_for(rule.endpoint)
links.append((url, rule.endpoint))
return render_template('all_links.html', links=links)
if __name__ == '__main__':
# Bind to PORT if defined, otherwise default to 5000.
port = int(os.environ.get('PORT', 5000))
app.run(host='0.0.0.0', port=port)
Run Code Online (Sandbox Code Playgroud)
和all_links.html文件
<!DOCTYPE HTML>
<html lang="en">
<head>
<title>links</title>
</head>
<body>
<ul>
{% for url, endpoint in links %}
<li><a href="{{ url }}">{{ endpoint }}</a></li>
{% endfor %}
</ul>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
应用程序的所有路由都存储在app.url_map其中werkzeug.routing.Map.话虽这么说,您可以Rule使用以下iter_rules方法迭代实例:
from flask import Flask, render_template, url_for
app = Flask(__name__)
@app.route("/all-links")
def all_links():
links = []
for rule in app.url_map.iter_rules():
if len(rule.defaults) >= len(rule.arguments):
url = url_for(rule.endpoint, **(rule.defaults or {}))
links.append((url, rule.endpoint))
return render_template("all_links.html", links=links)
Run Code Online (Sandbox Code Playgroud)
{# all_links.html #}
<ul>
{% for url, endpoint in links %}
<li><a href="{{ url }}">{{ endpoint }}</a></li>
{% endfor %}
</ul>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3582 次 |
| 最近记录: |