我的烧瓶应用程序中有多个视图。每个视图都有其自己的子视图,每个子视图不断具有其小模板。视觉演示和url结构如下:
|-settings ___________ [@app.route(/manage)]
|--menu_settings _____ [@app.route(/manage?current=menu_settings)]
|--main_settings _____ [@app.route(/manage?current=main_settings)]
|--additional_settings [@app.route(/manage?current=additional_settings)]
|-online_store [@app.route(/online_store)]
|--delivery __ [@app.route(/online_store?current=delivery)]
|--payment ___ [@app.route(/online_store?current=payment)]
|--store _____ [@app.route(/online_store?current=store)]
我想做的是使用if或switch条件。例如:
@admin.route('/manage', methods = ['GET', 'POST'])
@login_required
def manage(current = ''):
current = request.args.get('current')
if current == 'menu_settings':
return render_template('admin/manage/site_figuration.html',
title = 'Site figuration',
current = current)
elif current == 'internet_market':
return render_template('admin/manage/internet_market.html',
title = 'Internet market',
current = current)
else:
return '404 - Template not found'
我的问题是我做对了吗?还是有其他更简单的方法来克服这个问题?使用此方法是否合理,或者我必须使用JQuery load()方法?
看来您使事情变得太复杂了。怎么样:
@admin.route('/manage')
@admin.route('/manage/<current>')
@login_required
def manage(current = None):
if current == 'menu_settings':
template = 'admin/manage/site_configuration.html'
title = 'Site configuration'
elif current == 'internet_market':
template = 'admin/manage/internet_market.html'
title = 'Internet market'
elif current is None:
template = 'admin/manage/default.html'
title = 'Default page for manage'
else:
flask.abort(404)
return render_template(template, title=title, current=current)
但是我也发现有多种路线是更正确的方法。为什么要重新发明轮子?
@admin.route('/manage')
@login_required
def manage():
return render_template('admin/manage/default.html',
title='Default page for manage',
current=None)
@admin.route('/manage/menu_settings')
@login_required
def manage_menu_settings():
return render_template('admin/manage/site_configuration.html',
title='Site configuration',
current='menu_settings')
@admin.route('/manage/internet_market')
@login_required
def manage_internet_market():
return render_template('admin/manage/internet_market.html',
title='Internet market',
current='internet_market')
注意:请注意,此代码未经测试,请注意错误和/或错别字。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句