Leg*_*end 5 python android flask web
我在读Flask.鉴于它与Jinja2和WTF表格的紧密集成,当我开始编写我的网站的原生移动版本时会发生什么?我通常编写一堆独立于前端工作的后端API,然后使用JS编写前端代码.这样,如果我必须实现本机移动应用程序,我可以无缝地使用后端API.使用Flask(或其他一些框架)与模板引擎的紧密集成,我应该如何设计我的应用程序?
例如,让我们从这里举一个例子,作者主张登录函数写成如下:
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)
Run Code Online (Sandbox Code Playgroud)
但是,当我构建原生Android/iOS应用程序时,我假设后端应该公开一堆API调用来验证输入并为您执行登录.鉴于移动设备与Jinga2或其他一些模板无关(因为所有内容都是本机实现的),所有这些代码在本机移动应用程序的上下文中都是无用的.这意味着,我将不得不重构"真实世界"Flask代码以与移动应用程序兼容.是这种情况还是我错过了更高级别的观点?
我的具体问题是:我应该在Flask中遵循什么样的设计模式,以确保我的网站对网络和移动设备友好?
我认为这里有两个问题:
问题1将涉及响应式网页设计,该网页设计以对桌面Web浏览器和移动Web浏览器友好的方式格式化网页.有些CSS技术可以根据浏览器视口大小使用不同的样式表和模板.这将是不同的jinja2模板可用于移动与Web客户端的地方.或者有"响应式设计"根据视口大小进行调整.
问题2讲述了如何构建您的服务和客户.你可以像你说的那样做,并有一个后端API(可能是Flask应用程序或非Flask-Classy或Flask-Restful是Flask扩展,有助于使用Flask开发REST API),独立于任何前端.然后,您可以编写使用后端API的本机移动应用程序.您可以编写也使用后端的Flask Web应用程序.移动应用和Flask应用之间不存在任何依赖关系.它们只是两个不同的客户端,它们都访问相同的后端API.
您链接的示例是创建单一的Web应用程序.这是一个很好的教程,如果这是你想要创建的.但如果您想要一组可供移动应用程序和Web客户端使用的服务,则它不会完全适用.