render函数是Django shortcut,以接收请求、模板路径和一个高低文的dict。与Flask的render_template类似,它也接收接入请求。
- def newlunch(request):
- l = Lunch()
- l.submitter = request.POST['submitter']
- l.food = request.POST['food']
- l.save()
- return redirect('home')
保存表荡竽暌功答到数据库是不一样的,Django调用模型的 .save()办法以及处理会话治理而不是用全局数据库会话。干净利落!
Django供给了一些优雅的特点,让我们治理用户提交的午餐,是以我们可以删除那些不合适的午餐信息。Flask和Pyramid没有主动供给这些功能,而在创建一个Django应用时不须要写另一个治理页面当然也是其一个特点。开辟者的时光可不免费啊!我们所要做的就是告诉Django-admin我们的模型,是在wut5lunch/admin.py中添加两行。
- from wut4lunch.models import Lunch
- admin.site.register(Lunch)
获取午餐的萌芽语法和Flask的很类似,这是因为这两个demo应用应用了风行的SQLAlchemy ORM来供给持久存储。在Pyramid中,许可你直接返回模板高低文的字典,而不是要调用特别的render函数。@view_config装潢器主动将返回的高低文传入要衬着的模板。避免调用render办法使得Pyramid写的函数加倍轻易测试,因为它们返回的数据没有被模板衬着对象掩盖。
Bam。如今我们可以添加删除一些条目,而无需额外的工作。
最后,让我们看下主页模板的不合之处。
- <ul>
- {% for lunch in lunches %}
- <li><strong>{{ lunch.submitter }}</strong> just ate <strong>{{ lunch.food }}</strong></li>
- {% empty %}
- <em>Nobody has eaten lunch, you must all be starving!</em>
- {% endfor %}
- </ul>
Django拥有便利的快捷方法,在你的页面中引用其他的视图。url标签可以使你重建应用中的URLs,而不需破坏视图。这个是因为url标签会主动萌芽视图中的URL。
- <form action="{% url 'newlunch' %}" method="post">
- {% csrf_token %}
- {{ form.as_ul }}
- <input type="submit" value=http://developer.51cto.com/art/201709/"I ate this!" />
- </form>
表单被不合的语法衬着,我们须要人工在表单主体中添加CSRF token,但这些差别更多的是装潢
6.3测试Pyramid版App
最后,我们看看竽暌姑Pyramid实现的同样的法度榜样。与Django和Flask的最大年夜不合是模板。只须要对Jinja2做很小的修改就足以解决我们在Django中的问题。此次不是如许的,Pyramid的Chameleon模板的语法更轻易让人联想到XSLT而不是其余。
- <!-- pyramid_wut4lunch/templates/index.pt -->
推荐阅读
【51CTO.com原创稿件】在大年夜数据、云计算、移动互联网技巧的推动下,企业将得以由“泛数字化”向“聪明化”转型,经由过程实现聪明化应用、聪明化平台、聪明化互联、聪明化计算,塑造企业顶层>>>详细阅读
本文标题:Python Web框架:Django vs Flask vs Pyramid
地址:http://www.17bianji.com/lsqh/37298.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示