【发布时间】:2014-08-26 02:32:58
【问题描述】:
我正在阅读有关 Flask 的信息。鉴于它与 Jinja2 和 WTF-forms 的紧密集成,当我开始编写我的网站的本地移动版本时会发生什么?我通常会编写一堆独立于前端工作的后端 API,然后使用 JS 编写前端代码。这样,如果我必须实现一个原生移动应用程序,我可以无缝地使用后端 API。使用 Flask(或其他框架)与模板引擎的紧密集成,我应该如何设计我的应用程序?
比如,我们以here为例,作者主张登录功能写成这样:
from flask import render_template, flash, redirect
from app import app
from forms import LoginForm
# index view function suppressed for brevity
@app.route('/login', methods = ['GET', 'POST'])
def login():
form = LoginForm()
if form.validate_on_submit():
flash('Login requested for OpenID="' + form.openid.data + '", remember_me=' + str(form.remember_me.data))
return redirect('/index')
return render_template('login.html',
title = 'Sign In',
form = form)
但是,当我构建原生 Android/iOS 应用程序时,我假设后端应该公开一堆 API 调用来验证输入并为您进行登录。并且鉴于移动设备与 Jinga2 或其他模板无关(因为一切都是本地实现的),所有这些代码在本地移动应用程序的上下文中都是无用的。这意味着,我将不得不重构“真实世界”的 Flask 代码以与移动应用程序兼容。是这种情况还是我错过了更高层次的观点?
我的具体问题是:我应该在 Flask 中遵循什么设计模式以确保我的网站对 Web 和移动设备友好?
【问题讨论】: