国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > Flask > Flask与Django对比

Flask与Django对比

Flask、Django

头像

流芳

2020-05-27 14:04:366823浏览 · 0收藏 · 0评论

概括

Django功能大而全,Flask只包含基本的配置 Django的一站式解决的思路,能让开发者不用在开发之前就在选择应用的基础设施上花费大量时间。Django有模板,表单,路由,认证,基本的数据库管理等等内建功能。与之相反,Flask只是一个内核,默认依赖于两个外部库: Jinja2 模板引擎和 Werkzeug WSGI 工具集,其他很多功能都是以扩展的形式进行嵌入使用。

Flask 比 Django 更灵活 用Flask来构建应用之前,选择组件的时候会给开发者带来更多的灵活性 ,可能有的应用场景不适合使用一个标准的ORM(Object-Relational Mapping 对象关联映射),或者需要与不同的工作流和模板系统交互。

Flask 在 Django 之后发布,现阶段有大量的插件和扩展满足不同需要 Django发布于2005年,Flask创始于2010年年中。

项目区别

Django 创建项目和创建应用

django-admin startproject hello_django 
django-admin startapp howdy12

其目录结构: 默认情况下,Django项目和应用创建好了之后,只包含空的模型和模板文件,而Flask创建项目之后,目录里面没有任何文件,需要我们手动创建,是没有像Django一样组件分离,而对于需要把组件分离开的项目,Flask有blueprints。

例如,你可以这样构建你的应用,将与用户有关的功能放在user.py里,把与销售相关的功能放在ecommerce.py里。

Django把一个项目分成各自独立的应用,而Flask认为一个项目应该是一个包含一些视图和模型的单个应用。当然我们也可以在Flask里复制出像Django那样的项目结构。

模板

举一个 Django 模板的例子

<!-- view.html -->
<div class="top-bar row">
  <div class="col-md-10">
  <!-- more top bar things go here -->
  </div>
  {% if user %}
  <div class="col-md-2 whoami">
    You are logged in as {{ user.fullname }}
  </div>
  {% endif %}
</div>
{% for widget in inventory %}
    <li><a href="/widget/{{ widget.slug }}/">{{ widget.displayname }}</a></li>
{% endfor %}1234567891011121314

Flask默认使用一个受Django启发而发展起来的名为Jinja2的模板,其实,所有上面的Django模板的例子在Jinja2里也是好使的。

模板简单对比

<!-- Django -->
<div class="categories">Categories: {{ post.categories|join:", " }}</div>

<!-- Jinja -->
<div class="categories">Categories: {{ post.categories|join(", ") }}</div>12345

在Jinja的模板语言里,可以把任何数量的参数传给过滤器,因为Jinja像调用一个Python函数的方式来看待它,用圆括号来封装参数。Django使用冒号来分隔过滤器名和参数,这样就只能传递一个参数了。

Flask的Jinja模版 for-else-endfor

{% for item in inventory %}
    <div class="display-item">{{ item.render() }}</div>
{% else %}
    <div class="display-warn">
    <h3>No items found</h3>
    <p>Try another search, maybe?</p>
    </div>
{% endfor %}12345678

Django模版 for-empty-endfor

{% for item in inventory %}
    <div class="display-item">{{ item.render }}</div>
{% empty %}
    <div class="display-warn">
    <h3>No items found</h3>
    <p>Try another search, maybe?</p>
    </div>
{% endfor %}12345678

除了上述的语法区别,Flask还提供了很多特有的上下文变量(url_for,get_flashed_messages()等)

    更多python相关文章请关注python自学网

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

撕开老师内裤猛烈进入的日文| 快拨出天我是你母亲歌词监控| 《请好好疼爱里面》免费观看| 公交车NP粗暴H强J玩弄| 双男床上剧烈运动会怎么消除| 小俊在雪姨身上耕耘小说免费阅读| 爱动漫网| 女性开过苞后最明显的变化| MV在线观看免费播放历史| 刘老汉的儿媳小雪的背景资料| 《酒店激战》动漫1-5集免费观.. 《酒店激战》动漫1-5集免费观.. | 好闺蜜4| 妈妈你真棒里面的插曲叫什么 | 老公在洗澡我被公干日本| 天降奇缘| 狗配女人宝典视频| 花千骨电视剧全集免费播放| 星空传媒天美传媒有限公司| 在床上怎么做才能让男人荷尔蒙提..| 高三妈妈用性缓解孩子压力| 《出差的日子》中文版 | 男生困困进女生困困洞视频| 国精产品一品二品国精HTC| 短视频| 《囚禁空姐》电影免费观看| 完美搭档| 撕开老师内裤猛烈进入的日文| 坤坤寒入桃子里电视剧免费看| 宝宝水帘洞都拉丝了怎么办| 坤坤赛进桃子里在线看歌词| 麻豆 无码 国产在线观看| 欧美| 《寂寞的背叛》免费播放| 老公把舌头放进我B里搅拌| 二人生猴子全程免费下载| 第1章厨房春潮的羞耻| 11人裸体航班女服务员是谁| 《魅魔之耻》1~4集免费看| 我的邻居的老婆2完整版电视剧| 免费观看已满十八岁电视剧高清版| 美国《性船》无删减