freeCodeCamp/guide/chinese/python/web-frameworks-and-what-the.../index.md

59 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
title: Python Web Frameworks and What They Do
localeTitle: Python Web框架及其功能
---
我们在前面的文章中非常自由地使用了`framework`这个词。你可能熟悉或不熟悉那是什么。尽管如此我们将讨论Python Web框架为您做什么开箱即用。
如果你要建立许多具有不同功能的网站那么非正式地说Web框架可以为你做些_反复_做的事情。
让我们采取一个非常粗略的例子,并尝试做一个简单的类比。说,你去吃饭,这是一家高档餐厅。它可以是任何类型的餐厅 - 意大利,墨西哥,印度,韩国,泛亚洲。
试着想一下顾客走进餐厅时常见的事情。代客可能会带你的车去验证停车。如果您预订,可能会在接待处询问您;你们有多少朋友和你在一起您可能会被带到您的餐桌旁,或被要求等待 - 取决于里面的人群。
一旦就座,您将被问到是否需要常规水或瓶装水。然后有人会问你是否喜欢饮料。你可能会订购一些初学者,然后是主菜;最后,一些甜点。你必须支付账单。
我知道如果你想花一点时间去记忆里走一趟,享受美味的牙齿。完成后,您需要将自己置于经营业务人员的位置。
如果您注意到,您正在为每个客户重复进行一些活动。根据餐厅的类型和时间,有些事情会有所不同。例如,菜单和食品价格。
说,你正在经营这家公司;您还需要处理此业务的其他方面,客户可能会忘记这些方面。例如;工作人员的工资,管理书籍,支付房产的租金和税,打印新的菜单卡等。
你想知道这次谈话的目的地。冷静我们正在尽快回到Python Web Development。
Web框架为您执行这些重复活动 - 当您仅使用编程语言和某些网络库构建Web应用程序时您将执行此操作。如请求处理URL路由模板编译上下文设置CSRF保护日志记录通过ORM进行数据库交互身份验证响应呈现等。
你可能想知道开发人员要做什么呢根据应用程序您必须使用框架API并编写特定于应用程序的逻辑。
您的代码将填补框架代码中_故意_留下的空白 - 并将您的代码与框架相结合;您的Web应用程序将充满活力
Python中最流行的两个Web框架是Django和Flask。 Django可能是最常用的Python框架。 Django可以帮助您构建网站您可以同时与客户端用户和数据库进行交互。 Flask是一个微框架它也可以完成Django所做的大部分任务但是通过使用社区的扩展。其他值得一提的框架是Pylons和Tornado。
### Django的
Django/dʒæŋɡoʊ/ JANG-goh是一个免费的开源Web框架用Python编写遵循模型 - 视图 - 模板MVT架构模式。它由Django软件基金会DSF维护这是一个独立的组织成立为501c3非盈利组织。
Django的主要目标是简化复杂的数据库驱动网站的创建。 Django强调组件的可重用性和“可插拔性”快速开发以及不重复自己的原则。 Python始终使用甚至用于设置文件和数据模型。 Django还提供可选的管理创建读取更新和删除界面该界面通过内省动态生成并通过管理模型进行配置。
一些使用Django的知名网站包括公共广播服务InstagramMozilla华盛顿时报DisqusBitbucket和Nextdoor。它在Pinterest上使用但后来该网站转移到了在Flask上构建的框架。
### 烧瓶
Flask是一个轻量级的WSGI Web应用程序和一个微框架它被归类为微框架因为它不需要特定的工具或库。它旨在使入门快速简便并能够扩展到复杂的应用程序。但是Flask支持可以添加应用程序功能的扩展就像它们在Flask本身中实现一样。存在对象关系映射器表单验证上载处理各种开放式身份验证技术和几种常见框架相关工具的扩展。扩展程序的更新速度远远超过核心Flask程序。 Flask通常与MongoDBNOSQL DataBase一起使用它允许更多地控制数据库和历史记录。
它最初是围绕Werkzeug和Jinja的简单包装器并且已经成为最受欢迎的Python Web应用程序框架之一。
Flask提供建议但不强制执行任何依赖项或项目布局。开发人员可以选择他们想要使用的工具和库。社区提供了许多扩展可以轻松添加新功能。
Flask是由一个叫做“Pocoo”的国际Python小组于2004年制作的作为一个愚人节的笑话后来被制作成“真实”的东西。根据Wikpedia它是Github上最常用的Python Web框架。它是一个用Python编写的免费开源微框架 [在GitHub上查看](https://github.com/freeCodeCamp/guide/tree/master/src/pages/javascript) )。正如维基百科所述,
Flask被归类为微框架因为它不需要特定的工具或库。它没有数据库抽象层表单验证或任何其他预先存在的第三方库提供常用功能的组件。
与Django相比Flask非常像“不包含电池”的框架。这意味着您需要自己安装用户身份验证表单和其他内容等模块。这并不是说Flask不是为那些东西制作的只是说它们不包括在内而且这些模块是由社区制作的。 Flask还提供了大量详细的文档网址为http://flask.pocoo.org/docs/。它提供简单性和对较小事物的更多控制。您将无法使用未使用的功能,因为您可以选择添加的内容和不添加的内容。
使用Flask的网站包括Pinterest 从Django迁移而来Twilio的私有API他们甚至制作了一个名为Flask-RESTful for API的扩展名和Netflix使用ScriptFlask一个基于Flask的工具
### 瓶子
Bottle是一个Python微框架允许用户快速启动并运行Python Web应用程序。它比Django等更全面的功能更轻量级并且没有仅依赖于Python标准库的第三方依赖。
这使得它非常适合小型Web应用程序在这些应用程序中不需要Django的一些更高级的功能例如身份验证或数据库访问。