定制高端网站建设,山东省住房和城乡建设厅领导名单,网站建设与维护税率,国产crm系统Python Web 框架的使用率仍然是 Flask、Django 和 FastAPI 之间的三强之争。所有其他框架加起来只能勉强排在第三位。下面对这三个主流框架做下比较#xff1a;
Djanggo 使用比率#xff1a; 39%系统特点#xff1a;全栈框架#xff1a;内置 ORM、模板引擎、表单处理、用户…Python Web 框架的使用率仍然是 Flask、Django 和 FastAPI 之间的三强之争。所有其他框架加起来只能勉强排在第三位。下面对这三个主流框架做下比较Djanggo使用比率 39%系统特点全栈框架内置 ORM、模板引擎、表单处理、用户认证等功能开箱即用适合快速开发复杂的 Web 应用社区强大有丰富的第三方库和插件。系统性能中等。由于功能丰富性能略低于轻量级框架但足够应对大多数场景。适用场景需要快速开发的全栈应用如内容管理系统CMS、社交网络、电子商务网站等。Flask使用比率36%系统特点微框架轻量级核心功能简单易于扩展灵活可以根据需求选择插件和库学习曲线低适合初学者和小型项目。系统性能较高由于轻量级设计性能优于 Django。适用场景小型 Web 应用、API 服务、原型开发。FastAPI使用比率25%系统特点高性能基于 Starlette 和 Pydantic性能接近 Node.js 和 Go异步支持原生支持异步编程自动文档自动生成 OpenAPI 和 Swagger 文档。系统性能极高是目前性能最好的 Python Web 框架之一。适用场景高性能 API 服务、微服务、实时应用。目前纯粹的前端框架有很多如vue、angular、React等笔者不建议使用Python做web界面开发可以使用Python开发人工智能后端后通过restful API发布接口供第三方应用调用即可。下面逐个介绍这几个框架并提供简单的web开发应用只做抛砖引玉的作用不做详细的引申感兴趣的同学可以针对自己感兴趣的框架做进一步的学习。首先从使用率最高的Django开始。Django是一个高级的Python Web应用框架可以快速开发安全和可维护的网站。由经验丰富的开发者构建Django负责处理网站开发中麻烦的部分可以专注于编写应用程序而无需重新开发。它是免费和开源的有活跃繁荣的社区丰富的文档以及很多免费和付费的解决方案。 Django遵循一种称为MTVMODEL-TEMPLATE-VIEW模式的架构模式。主要功能Django是高水准的Python编程语言驱动的一个开源模型视图控制器风格的Web应用程序框架它起源于开源社区。使用这种架构程序员可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序。这也正是OpenStack的Horizon组件采用这种架构进行设计的主要原因。另外在Django框架中还包含许多功能强大的第三方插件使得Django具有较强的可扩展性。Django 项目源自一个在线新闻 Web 站点于 2005 年以开源的形式被释放出来。Django 框架的核心组件有用于创建模型的对象关系映射为最终用户设计较好的管理界面URL 设计设计者友好的模板语言缓存系统。框架特点Django已经成为web开发者的首选框架是一个遵循 MVC 设计模式的框架。MVC是Model、View、Controller三个单词的简写分别代表模型、视图、控制器。Django其实也是一个MTV的设计模式。MTV是Model、Template、View三个单词的简写分别代表模型、模版、视图 [4]。但是在Django中控制器接受用户输入的部分由框架自行处理所以 Django 里更关注的是模型Model、模板(Template)和视图Views称为 MTV模式。它们各自的职责如下层次职责模型层Model即数据存取层。处理与数据相关的所有事务 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。模板层(Template)即表现层处理与表现相关的决定 如何在页面或其他类型文档中进行显示。视图层View即业务逻辑层存取模型及调取恰当模板的相关逻辑。模型与模板的桥梁。从以上表述可以看出Django 视图不处理用户输入而仅仅决定要展现哪些数据给用户而Django 模板 仅仅决定如何展现Django视图指定的数据。或者说, Django将MVCMODEL-VIEW-CONTROL中的视图进一步分解为 Django视图 和 Django模板两个部分分别决定 “展现哪些数据” 和 “如何展现”使得Django的模板可以根据需要随时替换而不仅仅限制于内置的模板。至于MVC控制器部分由Django框架的URLconf来实现。URLconf机制是使用正则表达式匹配URL然后调用合适的Python函数。URLconf对于URL的规则没有任何限制完全可以设计成任意的URL风格不管是传统的RESTful的或者是另类的。框架把控制层给封装了无非与数据交互这层都是数据库表的读,写,删除,更新的操作。在写程序的时候只要调用相应的方法就行了感觉很方便。程序员把控制层东西交给Django自动完成了。 只需要编写非常少的代码完成很多的事情。所以它比MVC框架考虑的问题要深一步因为程序员大都在写控制层的程序。这个工作交给了框架仅需写很少的调用代码大大提高了工作效率。模型层model通过 ORM对象关系映射定义数据库结构支持主流数据库MySQL、PostgreSQL、SQLite。# 示例 from django.db import models class Book(models.Model): title models.CharField(max_length100) author models.ForeignKey(Author, on_deletemodels.CASCADE) publish_date models.DateField(auto_now_addTrue)说明CharField定义字符串字段ForeignKey关联其他模型auto_now_add自动记录创建时间。视图层view处理业务逻辑接收请求并返回响应如 HTML、JSON。# 示例 from django.shortcuts import render from .models import Book def book_list(request): books Book.objects.filter(author__name鲁迅) return render(request, books/list.html, {books: books})说明objects.filter() 执行数据库查询render() 渲染模板。模板层template动态生成 HTML支持模板继承和逻辑控制。ul {% for book in books %} li{{ book.title }} - {{ book.publish_date|date:Y-m-d }}/li {% endfor %}说明{% for %}循环遍历数据|date为过滤器格式化日期。路由URLConf将 URL 映射到视图函数支持动态参数和正则表达式。from django.urls import path from . import views urlpatterns [ path(books/, views.book_list, namebook-list), path(books/int:book_id/, views.book_detail), ]说明int:book_id捕获整数参数name用于反向解析 URL。运行环境Django可以运行在ApacheNginx等Web服务器上也可以运行在支持WSGIFastCGI的服务器上。支持多种数据库已经支持Postgresql,MySql, Sqlite3,Oracle。Google App Engine也支持Django的某些部分国内支持的平台有新浪应用引擎Sina App EngineSAE百度应用引擎Baidu App EngineBAE。设计模式Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用多个组件可以很方便的以“插件”形式服务于整个框架Django有许多功能强大的第三方插件甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展性。它还强调快速开发和DRY(Do Not Repeat Yourself)原则。对象关系映射 object-relational mappingORM)以Python类形式定义的数据模型ORM将模型与关系数据库连接起来将得到一个非常容易使用的数据库API同时也可以在Django中使用原始的SQL语句。URL 分派使用正则表达式匹配URL可以设计任意的URL没有框架的特定限定。一样灵活。模版系统使用Django强大而可扩展的模板语言可以分隔设计、内容和Python代码。并且具有可继承性。表单处理可以方便的生成各种表单模型实现表单的有效性检验。可以方便的从定义的模型实例生成相应的表单。Cache系统可以挂在内存缓冲或其它的框架实现超级缓冲 实现所需要的粒度。会话(session)用户登录与权限检查快速开发用户会话功能。国际化内置国际化系统方便开发出多种语言的网站。自动化的管理界面不需要花大量的工作来创建人员管理和更新内容。Django自带一个admin site,类似于内容管理系统依赖安装pip安装打开命令行窗口输入以下命令安装官方发布的发行版本python -m pip install django这种方式会默认安装最新版的Django框架如果要安装指定版本使用以下命令python -m pip install django[x.y]其中x.y表示想要安装的Django版本号。源码安装首先下载django的压缩包git clone https://github.com/django/django.git下载完成之后将在本地创建了django目录并将源码下载到该目录下。进入下载根目录执行以下程序python -m -pip install -e django/开发第一个应用创建第一个django项目如果这是你第一次使用 Django 的话需要做一些初始化设置。也就是说你需要用一些自动生成的代码配置一个 Django项目 —— 即一个 Django 项目实例需要的设置项集合包括数据库配置、Django 配置和应用程序配置。打开命令行cd到一个你想放置你代码的目录然后运行以下命令django-admin startproject mysite这行代码将会在当前目录下创建一个mysite目录。如果命令失败了查看 运行django-admin时遇到的问题可能能给你提供帮助。注意你得避免使用 Python 或 Django 的内部保留字来命名你的项目。具体地说你得避免使用像django(会和 Django 自己产生冲突)或test(会和 Python 的内置组件产生冲突)这样的名字。如果你曾经是原生 PHP 程序员没有使用过现代框架你可能会习惯于把代码放在 Web 服务器的文档根目录(诸如/var/www)。当使用 Django 时不需要这样做。把所有 Python 代码放在 Web 服务器的根目录不是个好主意因为这样会有风险。比如会提高人们在网站上看到你的代码的可能性。这不利于网站的安全。把你的代码放在文档根目录以外的某些地方吧比如 /home/mycode。如果项目创建成功目录结构将如下所示mysite/ manage.py mysite/ __init__.py settings.py urls.py wsgi.py这些目录和文件的用处是最外层的:file: mysite/ 根目录只是你项目的容器 Django 不关心它的名字你可以将它重命名为任何你喜欢的名字。manage.py: 一个让你用各种方式管理 Django 项目的命令行工具。里面一层的mysite/目录包含你的项目它是一个纯 Python 包。它的名字就是当你引用它内部任何东西时需要用到的 Python 包名。 (比如mysite.urls).mysite/__init__.py一个空文件告诉 Python 这个目录应该被认为是一个 Python 包。mysite/settings.pyDjango 项目的配置文件。如果你想知道这个文件是如何工作的mysite/urls.pyDjango 项目的 URL 声明就像你网站的“目录”。mysite/wsgi.py作为你的项目的运行在 WSGI 兼容的Web服务器上的入口。开发简易服务器让我们来确认一下你的 Django 项目是否真的创建成功了。如果你的当前目录不是外层的mysite目录的话请切换到此目录然后运行下面的命令$ python manage.py runserver你应该会看到如下输出Performing system checks... System check identified no issues (0 silenced). You have unapplied migrations; your app may not work properly until they are applied. Run python manage.py migrate to apply them. 八月 01, 2018 - 15:50:53 Django version 2.0, using settings mysite.settings Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C.你刚刚启动的是 Django 自带的用于开发的简易服务器它是一个用纯 Python 写的轻量级的 Web 服务器。我们将这个服务器内置在 Django 中是为了让你能快速的开发出想要的东西因为你不需要进行配置生产级别的服务器比如 Apache方面的工作除非你已经准备好投入生产环境了。注意千万不要将这个服务器用于和生产环境相关的任何地方。这个服务器只是为了开发而设计的。(我们在 Web 框架方面是专家在 Web 服务器方面并不是。)现在服务器正在运行浏览器访问https://127.0.0.1:8000/。你将会看到一个“祝贺”页面随着一只火箭发射服务器已经运行了。