python作为解释型脚本言语,是一种通用的编程言语。因为python社区具有很多的库文件、结构和其他的一些实用东西,咱们能够用python完结各式各样的任务。另外,因为python的代码构成和结构就像英语句子相同天然,这种言语的学习曲线也比较平缓。因而和其他言语比较,好多网站开发人员更喜欢用python来保证代码的可读性。
可是,python一开端被规划出来的时候,并没有特别倾向于网站开发。正是因为这个原因,咱们在运用python做网站时,就不得不凭借数量繁多的web开发结构。在这篇文章里,咱们聊一聊2021年将会盛行的web结构。
图片
最实用的结构列表:咱们总结的5个
经过很多的实验总结,咱们整理了5个最实用、最好用的结构。下面让咱们细细道来:
Django
排位榜首的当然是Django。事实上,正是因为Django的存在,成百上千的网站项目才干成功,python才干成为网站开发中最常用的言语。包含 Instagram, Mozilla Firefox, National Geographic, Pinterest, NASA等在内的大型机构、公司,都在运用Django作为网站开发结构。
这也便是为什么对于大多数网站开发者来说,假如运用python作为开发言语,那么Django便是唯一一个最常被提及的结构。尤其是因为下面的一些特性和长处,Django CMS总是作为网站开发中最基础、最常用的办理系统:
1、有好多拿来就能直接运用的模板
2、操作数据库
3、面向对象的编程办法
4、网络地址映射
5、内置网站服务器
6、能够运用HTML表单获取数据,并传递给服务器(在Django中完成这一功用实在是太简略了,以至于菜鸟也能轻松运用)
7、安全可靠的用户权限
8、直观的办理界面
9、强壮的XML/JSON处理功用
因为上面说到的这些方面,Django能够担任各种大型网站项目。你对这个结构心动了吗?假如没有,那咱们看下一个。
CherryPy
CherryPy是仅次于Django的网站开发结构,它最大的特性便是能够一起运行好几个web服务。Django和CherryPy最大的区别在于,后者没有像前者那样多的模板,而是供给能够导入的库文件。事实上,这种方式给开发者以很大的自在度和扩展性,程序员能够自在的挑选运用或许禁用各种模板、用户权限和数据库。
除此之外,CherryPy事实上是一个根据Python的简约而不简略的HTTP结构,允许和一切类型的服务器(如Apache等)进行交互。假如你是刚刚接触网站开发,一定要记住在项目中最好形成一套自己用着顺手的东西调集(咱们应该清楚地知道,CherryPy具有灵敏强壮的插件系统)。
TurboGears
TurboGears是一种MVC架构的网站开发结构,它根据一些WSGI组件(比方SQLAlchemy, Ming, Repoze等)、模板引擎( Genshi, Kajiki, Cheetah, Myghty)和很多的库文件以及中间件(middleware)。一起它具有 widgets控件,能够十分方便的生成一些特定的功用。
TurboGears的首要特色是:用FormEncode进行表单验证;运用 Gearbox作为项目办理东西,并供给网络服务(新的版别也支撑运用Apache或许Nginx作为服务器);许多实用的指令行东西;支撑MochiKit模块,一种处理文本内容的genshi模板引擎,一起包含创立UI和Tosca Widgets的库文件。这些常用功用给程序员带来的方便,是其他结构所不能代替的。还有一点——许多运用TurboGears的程序员都会推荐它的精简形式,也便是说,TurboGears能够装备成最轻量级的结构。
Flask
Flask是一个相当新的结构,他的开发者在深入完全的研讨了现有的各种结构后,分析了它们利害,在此基础上开发出了这一个取一切精华,去一切糟粕的web结构。
Flask是一个轻量级结构,简略易学,它在一些仅有一两个功用的小型项目上得到了很多运用。比方httpbin这样的项目,简略但十分强壮。跟CherryPy差不多,支撑一切的DBMS和模板引擎。Flask的优势在于具有众多的扩展东西来创立根据网站的运用(应当鼓励初学者多运用这些东西),它的代码同样简洁明了(只要3行代码就能搭建一个显现“Hello World”的主页),经过蓝图(blueprint)完成模块化办理,支撑Django官方模板言语Jinja2,能够创立根据API的计划和一次性东西(用其他结构完成这些功用的话,既费时又吃力)。
Pyramid
咱们说到的最终一个结构是Pyramid,它由Pylons项目中的一部分演化而来。Pyramid最大的特点便是灵敏性和可扩展性(尤其和Django比较)。在运用Pyramid时,程序员能够自在的挑选运用什么样的数据库、URL结构、模板风格等等,正如这个结构的开发者所说:
“那些重量级的结构都在替用户做决议。可是假如这些不适合你,你也无可奈何;轻量级的结构不替你做决议,你能够很快的上手。可是跟着你的网站越做越大,你就会发现小结构限制了你的大项目。上面这两种情况,都是只关注项目的开端阶段:不是太大便是太小,换句话说,在项目刚开端的时候,你并不能真实的预测到项目后期会有多大、功用会有多杂乱。你需求一个重视网站后期开发的结构,这样不论你的项目后期是大是小,它都能很好地满意你的需求。Pyramid便是这样一个结构,可大可小,刚刚好。”
运用Pyramid,能够不费劲的利用SQLAI创立传统的RDBMS运用。和Flask相同,Pyramid支撑多种类型的模板言语和引擎,包含Jinja2和Mako,而且它自己也内置有解决计划。乃至,它还兼容Chameleon——一个便捷的、通用的ZPT模板东西。
Pyramid被咱们广泛认可的长处包含:能够将一个完整的网站生成一个单一的文件;能够修改的模板;可装备的资源;灵敏的身份验证和授权;高档的引导东西——pcreate;根据view的办法;支撑指令型和陈述型的装备语法;HTTP缓存;内建Session会话等等。一般而言,Pyramid是现在最盛行的构建大中小型运用的结构。另一方面,正是因为这么强壮的灵敏性,可能会让一些有挑选困难症的初学者纠结于运用哪些功用,假如挑选欠好,可能会掉进一个又一个的坑里去。
挑选Python web结构:怎样防止过错的挑选
让咱们总结一下。正如你所看到的,咱们在挑选适宜的结构时,应该是根据本身的需求和项目的特点,因地制宜。对于上面的几个结构,我都一视同仁,我并不坚持认为哪一个更好或许更差。