【发布时间】:2017-08-28 20:17:47
【问题描述】:
您好,我正在使用 Python Flask 构建一个网站。
我需要在我构建的flask web中渲染大约5000个html页面,我做的方式如下。 所以,我的网站是关于股票市场的,我想为每家公司呈现一个 html 页面。我的做法是定义每个公司页面并使用不同的内容呈现相同的 html 文件。这样,我不需要制作 5,000 个不同的 html 文件,但我需要定义 5,000 个不同的@app.route,如下所示。我想知道是否有更聪明的方法来做到这一点。
@app.route('/analytics/signals/aapl')
def analytics_signals_aapl_page():
all_ticker = full_list
ticker_name = com_name
ticker = 'AAPL'
return render_template('company.html', all_ticker=all_ticker, ticker_name=ticker_name, ticker=ticker)
@app.route('/analytics/signals/ddf')
def analytics_signals_ddf_page():
all_ticker = full_list
ticker_name = com_name
ticker = 'DDF'
return render_template('company.html', all_ticker=all_ticker, ticker_name=ticker_name, ticker=ticker)
@app.route('/analytics/signals/aey')
def analytics_signals_aey_page():
all_ticker = full_list
ticker_name = com_name
ticker = 'AEY'
return render_template('company.html', all_ticker=all_ticker, ticker_name=ticker_name, ticker=ticker)
这是company.html文件的一部分,根据Python中每个页面定义中的变量放置不同的内容。
<section style="margin-top: 0px; background-color: #E6E6FA; padding: 0px; width:100%;">
<div class="container">
<h1 style="margin-top:10px; font-size: 25px;">{{ all_ticker[ticker_name[ticker]].split(':')[1] }} </h1>
<p style="margin-top: -5px; margin-left: 2px; color:#9932CC; font-size: 10px;">Ticker: {{ all_ticker[ticker_name[ticker]].split(':')[0] }}, Sector: {{ all_ticker[ticker_name[ticker]].split(':')[2] }}, Industry: {{ all_ticker[ticker_name[ticker]].split(':')[3] }}</p>
</div>
如果你知道任何更聪明的方法来做到这一点,请告诉我。我很感激。谢谢!
我尝试过的东西如下:
ticker_list = ['company1','company2','company3','company4','company5', ......'company5000']
for i in ticker_list:
@app.route('analytics/signals/%s'.format(i))
def analytics_signals_aapl_page():
all_ticker = full_list
ticker_name = com_name
ticker = i
return render_template('company.html', all_ticker=all_ticker, ticker_name=ticker_name, ticker=ticker)
不过好像不行.... 请帮帮我。
【问题讨论】:
标签: javascript python html flask