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

文章 > Flask > django和flask的区别

django和flask的区别

flask

头像

silencement

2019-07-27 10:10:256004浏览 · 0收藏 · 0评论

Flask与Django的区别

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

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

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

入门引导

Flask的Hello World应用的代码是最简单的,只用在一个Python文件里码7行代码就够了。

from flask import Flask
 app = Flask(__name__)
@app.route("/")
def hello():
	return "Hello World!"
 if __name__ == "__main__":
	app.run()

上面代码就已经是一个简单的 web 应用,从上面的 Hello World 应用的特点来看,一个没什么Python web开发经验的人就可以很快的上手开始撸代码。

项目区别

Django 创建项目和创建应用

django-admin startproject hello_django
django-admin startapp howdy

目录结构:

11786482-4bb07d1b1ba110f4.png

默认情况下,Django项目和应用创建好了之后,只包含空的模型和模板文件,而Flask创建项目之后,目录里面没有任何文件,需要我们手动创建,是没有像Django一样组件分离,而对于需要把组件分离开的项目,Flask有blueprints。例如,你可以这样构建你的应用,将与用户有关的功能放在user.py里,把与销售相关的功能放在ecommerce.py里。Django把一个项目分成各自独立的应用,而Flask认为一个项目应该是一个包含一些视图和模型的单个应用。当然我们也可以在Flask里复制出像Django那样的项目结构。

模板对比

Django的模版大家都很熟悉,我们举一个简单的例子

11786482-4bb07d1b1ba110f4.png

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

模版简单对比

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

在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 %}

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 %}

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

关注

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

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

老头跪在两腿之间吃奶| 免费B站看大片真人电视剧 | 免费观看B站刺激战场2023| 免费观看已满十八岁电视剧彩漫画| 爸爸汆肉的日常| 欧美大片视频| 儿子耕种母亲的田地的收获 | 夫妻二人世界免费看第一集| 专找老阿姨找老妈的搞笑视频| 《厨房韵母2》动漫下线了吗| 免费浏览外国黄冈网站的软件| 老和尚猛挺进她莹莹的体导演是谁 | 狗配人的大片视频大全| 欧美大片PPT| 窝窝影院在线观看免费播放电视剧 | 日韩电影在线观看高清版电视剧| 白日梦我小说全文免费阅读| 美女和帅哥一起努力生产豆浆的视.. | 二人努力生猴子免费观看| 《卻望1973》娃娃脸| 女性左腿又开腿肚子视频大全| 迪拜的女孩| 日本大片又大又好看的PPT | B站夫妻进入高峰期需要多久| 蜜桃成熟时2| 冯德伦| 姐姐的闺蜜2字ID高冷霸气| 青丝影院大全免费2023年新版| 九九在线观看免费播放大全电视剧 | 儿媳妇免费播放全部电视剧 | 日本妈妈DNA与儿子DNA一样..| 机械式| 初中全封闭学校| 天美麻花星空影视免费观看电视剧| 父亲开了两个女儿包演员表| 一个人看的免费高清直播| 巨乳童颜| 《厨房激战5》完整版在线观看 | 器材室轮-J-(4)| 免费观看已满十八岁电视剧直播| 巨乳童颜