django和flask的区别 面试题,django和flask哪个容易入门
Flask与Django的区别
Django功能齐全,Flask只包含了配置Django一站式解决方案的基本思路,让开发者不必在开发前花大量时间在选择应用的基础架构上。Django内置了模板、表单、路由、认证、基本数据库管理等功能。相反,Flask只是一个内核,默认依赖两个外部库:Jinja2模板引擎和Werkzeug WSGI工具集,其他很多功能都是以扩展的形式嵌入的。
Flask比Django更灵活。在使用Flask构建应用之前,选择组件会给开发者带来更多的灵活性。有些应用场景可能不适合使用标准的ORM(对象关系映射对象关联映射),或者需要与不同的工作流和模板系统进行交互。
Flask是在Django之后发布的,现阶段有大量的插件和扩展来满足不同的需求。Django于2005年发布,Flask成立于2010年年中。
入门引导
Flask的Hello World应用程序代码最简单,一个Python文件只有7行代码就够了。
fromflaskimportFlask
app=Flask(__name__)
@app.route(/)
defhello():
回到你好的世界!
if__name__==__main__:
上面的app.run()代码已经是一个简单的web应用了。从上面Hello World应用的特点来看,一个Python web开发经验不多的人也能很快开始编码。
项目区别
Django创建项目和应用程序。
django-adminstartprojecthello _ django
Django-adminstartapphowdy目录结构:
默认情况下,在创建Django项目和应用程序之后,它们只包含空的模型和模板文件。然而,在Flask创建项目后,目录中没有文件,我们需要手动创建它们。没有像Django那样的组件分离,但是Flask有需要分离组件的项目蓝图。比如你可以把和用户相关的函数放在user.py里,把和销售相关的函数放在ecommerce里,来构建你的应用,py Django把一个项目分成独立的应用,而Flask认为一个项目应该是一个单独的应用,有一些视图和模型。当然,我们也可以像Flask中的Django一样复制项目结构。
模板对比
大家都很熟悉Django的模板。我们举个简单的例子。
Flask默认使用受Django启发的名为Jinjia2的模板。事实上,上面所有Django模板的例子在Jinjia2中都运行良好。
模版简单对比
!姜戈
div class= categories categories : { { post . categories join : , }}/div
!- Jinja2 -
class= categories categories 3360 { { post . categories join(,)}}/div在金佳的模板语言中,可以向过滤器传递任意数量的参数,因为金佳把它当成调用Python函数,把参数括在括号里。Django使用冒号来分隔过滤器名称和参数,因此只能传递一个参数。
Flask的Jinja模版 for-else-endfor
{%foritemininventory%}
div class= display-item { { item . render()} }/div
{%else%}
divclass=display_warn
h3Noitemsfound/h3
可能是pTryanothersearch?/p
/div
{ % end for % }Django模版 for-empty-endfor
{%foritemininventory%}
div class= display-item“{ item . render } }/div
{%empty%}
divclass=显示-警告
h3Noitemsfound/h3
可能是pTryanothersearch?/p
/div
{%endfor%}除了上面的语法差异,Flask还提供了很多独特的上下文变量(url_for、get _ flashed _ messages()等。).
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。