Flask与Django对比有什么区别

小编给大家分享一下Flask与Django对比有什么区别,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!

成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于网站制作、成都网站制作、鹿城网络推广、微信小程序开发、鹿城网络营销、鹿城企业策划、鹿城品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供鹿城建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com

概括

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 模板的例子



  
  
  
  {% if user %}        You are logged in as {{ user.fullname }}   
  {% endif %}
{% for widget in inventory %}     
  • {{ widget.displayname }}
  • {% endfor %}1234567891011121314

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

    模板简单对比
    
    Categories: {{ post.categories|join:", " }}
    Categories: {{ post.categories|join(", ") }}
    12345

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

    Flask的Jinja模版 for-else-endfor

    {% for item in inventory %}
        {{ item.render() }}
    {% else %}
        
        

    No items found

        

    Try another search, maybe?

         {% endfor %}12345678

    Django模版 for-empty-endfor

    {% for item in inventory %}
        {{ item.render }}
    {% empty %}
        
        

    No items found

        

    Try another search, maybe?

         {% endfor %}12345678

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

    看完了这篇文章,相信你对Flask与Django对比有什么区别有了一定的了解,想了解更多相关知识,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


    分享文章:Flask与Django对比有什么区别
    本文地址:http://scyanting.com/article/ighpjg.html

    其他资讯