横梁式界面
flango的Python项目详细描述
弗兰戈!
你喜欢烧瓶的精致吗,但不知为什么要用姜戈?你是个疯子吗?
如果你两次回答是,这个图书馆是给你的!
支持Python2.6到3.7和Django 1.8+
快速启动
安装软件包。
pip install flango
创建Flango应用程序,将其添加到您的URL。
# urls.pyfromflangoimportFlangoapp=Flango(__name__)@app.route('/<int:pk>')defindex(pk):fromdjango.contrib.auth.modelsimportUserreturnUser.objects.get(pk=pk).first_nameurlpatterns=app.urlpatterns
优点
随时随地访问当前请求
fromdjangoimportformsfromflangoimportrequestclassMyForm(forms.Form):defsave(self):instance=super(MyForm,self).save(commit=False)instance.user=request.userinstance.save()returninstance
在您的视图旁边声明您的路线
fromflangoimportrender_templatefrommyappimportapp@app.route('/about')defabout():returnrender_template('about.html')
输入变量部分
fromflangoimportrender_templatefrommyappimportapp@app.route('/map/<float:lat>/<float:long>')defmap(lat,long):assertisinstance(lat,float)assertisinstance(long,float)returnrender_template('map.html',lat=lat,long=long)
直接从视图返回响应内容、状态代码和标题
frommyappimportapp@app.route('/ok')defok():return'ok'@app.route('/idk')defidk():return'idk',404@app.route('/wat')defwat():return'wat',400,{'Content-Type':'text/wat'}
创建URL时节省宝贵的PEP-8空间
fromdjango.dbimportmodelsfromflangoimporturl_forclassMyModel(models.Model):defget_invitation_link(self,friend_name):returnurl_for('my-model-invite',id=self.id,friend_name=friend_name)
对常规django视图使用flango.request
flango包装视图函数以全局提供request
对象。当从常规django视图调用访问flango.request
的表单或其他代码时,它将失败。
要解决这个问题,请将flango的global_request_middleware
添加到您的settings.MIDDLEWARE
:
# settings.pyMIDDLEWARE=('flango.global_request_middleware',# ...)
为了获得最佳效果,请将其放在列表的顶部。这允许您在其他中间件中使用flango.request
。