Full Stack Python logo Full Stack Python

全部主题 | Blog | 时讯 | @fullstackpython | Facebook | 源码

Web 框架

Web 框架就是一份代码库,它能帮助开发人员创建可靠、可扩展、易维护的 Web 应用。

为什么 Web 框架很有必要?

Web 框架封装了开发人员在过去二十年中学到的网站和 Web 应用开发的经验总结。它使得重用代码(例如通用 HTTP 操作和项目代码组织等)变得更加容易,因而熟悉该框架的其他开发人员就能快速创建和维护应用程序。

Web 框架的基本功能

框架通过它们自己的代码或扩展代码提供功能,以实现运行 Web 应用所需的基本操作。这些基本操作包括:

  • URL 路由
  • HTML、 XML、JSON 及其它输出模式模板
  • 数据库处理
  • 跨站请求伪造安全问题(CSRF)和其它攻击
  • session 存取

不是所有的 Web 框架都包含以上全部功能。框架种类从执行单一的用例到提供每个开发人员熟知的每个 Web 框架功能,不一而足。一些框架奉行“即插即用”的理念,把所有可能的东西都打包进来,而其它一些框架却有一个很小的内核包,以方便通过第三方代码包来扩展功能。

例如,Django Web 应用框架 含有一个对象关系映射 (ORM) 层来对关系型数据库的读、写、查询和删除操作进行抽象。但是,Django 的 ORM 如果不进行大量修改的话,是不能操作像 MongoDB 等的非关系型数据库的。

其它一些框架,像 FlaskPyramid 可以通过包含进外部 Python 库来更加容易地与非关系型数据库一起使用。框架的实现,都需要在最少功能和易扩展性,以及将所有东西都包含进来以提高整合度这两个选择之间进行抉择。

Web 框架对比

你对一个项目用 Django 实现和用 Flask 实现的代码对比感兴趣吗?看下 这篇 Django Web 应用教程 然后再看下 由 Flask 实现的相同的应用

还有一份代码库叫 compare-python-web-frameworks,上面的一个相同的 Web 应用由不能的 Python Web 框架、模板引擎和 对象关系映射器来实现。

既然已经学了 Web 框架,你也应该学下 Web 应用部署Web API

我需要使用 Web 框架吗?

你的项目是否需要使用 Web 框架取决于你的网站开发经验和你的目标。如果你是一个初级程序员并且以学习为目的来开发一个 Web 应用,那么框架能帮助你理解下面的这些概念,例如 URL 路由、数据处理和认证等这些主流的 Web 应用都具有的功能。

另一方面,如果你是一位有经验的程序员,具有丰富的网站开发经验,你可能会觉得现有的框架不能满足你的项目需求。如果那样的话,你可以将 Werkzeug 等开源库、WSGI 功能包和你自己的代码进行混合匹配来创建你自己的框架。 Python 的生态系统仍然为新框架留了足够的空间,以便去满足那些不能从DjangoFlaskPyramidBottle许多其它框架 中得到满足的程序员的需求。

简言之,你是否需要使用 Web 框架来创建 Web 应用取决于你的经验和你的目标。使用框架来创建 Web 应用当然不是必需的,但是在多数情况下,它能让开发人员的生活变得更加轻松。

Web 框架相关资源

Web 框架学习清单

  • 选择一个主流 Python Web 框架 (推荐 DjangoFlask),然后坚持使用。刚开始的时候最好只学习一个框架,而不要试图去理解每个框架。

  • 根据那个框架的网站上的资源链接,寻找一份详细的教程,并据此进行练习。

  • 研究用你所选框架开发的开源案例,这样你就能参与这些项目并在你的应用中重用这些代码。

  • 写完你的 Web 应用的第一个版本,然后参考 部署 那一章,将它发布到网上。

你想学习哪个 Web 框架?

什么是 Django Web 框架?

我想学习 Flask Web 框架

还有哪些 Web 框架?

#### 在这里注册以便每月能收到一份邮件资料,内容包含本站的主要更新、教程和 Python 书籍的打折码等。

The Full Stack Python Guide to Deployments 想找到一个完整的,一步一步的部署方案吗?请看《The Full Stack Python Guide to Deployments》.

邮件获取更新

##### 注册以便每月能收到一份邮件资料,内容包含本站的主要更新和 Python 教程。

目录

1. 简介学习编程为什么用 Python?Python 2 还是 3?企业 PythonPython CommunityBest Python Podcasts最佳 Python 资源最佳 Python 视频2. 开发环境VimEmacs3. 核心语言生成器推导式4. Web 开发Web 框架DjangoFlaskBottlePyramidMorepath其它 Web 框架Web 设计级联样式表 (CSS)JavaScriptWebSockets模板引擎Web 应用安全静态网站生成器Jinja25. 数据关系型数据库NoSQL 数据存储对象关系映射器PostgreSQLMySQLSQLite6. Web APIsAPI 集成API 的创建Twilio7. 部署服务器平台即服务(PaaS)操作系统Web 服务器WSGI 服务器源码控制应用程序依赖静态内容任务队列配置管理持续集成日志监控Web 分析Docker缓存微服务DevOpsNginxApache HTTP 服务器CaddyGreen Unicorn (Gunicorn)UbuntuPelicanLektorMkDocs8. 测试单元测试集成测试代码度量调试9. MetaBotsChange LogFuture DirectionsAbout the AuthorSQLAlchemyPeewee …或者显示全部目录内容.

Web 框架

重要的更新内容会通过 Twitter 账号@fullstackpython发布。


需要更加详细的教程吗?请看 《The Full Stack Python Guide to Deployments》。

Chapters

1. 简介2. 开发环境3. 核心语言4. Web 开发 » Web 框架 5. 数据6. Web APIs7. 部署8. 测试9. Meta …or view the full table of contents.


This site is based on Matt Makai's project Full Stack Python, thanks for his excellent work!

此网站由 @haiiiiiyun开源爱好者们 共同维护。 若发现错误或想贡献,请访问: Github fullstackpython.cn 项目