python作为解释型脚本语言,是一种通用的编程语言。由于python社区拥有大量的库文件、框架和其他的一些实用工具,我们可以用python完成各种各样的任务。另外,由于python的代码构成和结构就像英语句子一样自然,这种语言的学习曲线也比较平缓。因此和其他语言相比,好多网站开发人员更喜欢用python来确保代码的可读性。

然而,python一开始被设计出来的时候,并没有特别倾向于网站开发。正是由于这个原因,我们在使用python做网站时,就不得不借助数量繁多的web开发框架。在这篇文章里,我们聊一聊2018年将会流行的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框架:怎样避免错误的选择

让我们总结一下。正如你所看到的,我们在选择合适的框架时,应该是依据自身的需求和项目的特点,量体裁衣。对于上面的几个框架,我都一视同仁,我并不坚持认为哪一个更好或者更差。

如果你想开发一款网络应用,却不知道选择哪一个合适的框架,最好的方法是找一些有经验的人请教。当然,你也可以联系我们。

下一个大牛就是你,加油!

专注python开发技术知识总结分享

欢迎关注交流共同进步

Python新手交流群 463024091

python教程dendai1216

python教程,为您提供通俗易懂的技术文章,让技术变的更简单!

怎么用python学习网站开发_2018年最好用的5个python网站开发框架相关推荐

  1. php动态网站开发论文,浅谈《基于PHP的动态网站开发》课程的项目案例设计

    电子论文 浅谈<基于PHP的动态网站开发>课程的项目案例设计 时间:2020年05月25日 所属分类:电子论文 点击次数: [摘要]在教学资源建设中,案例设计建设是非常重要的资源之一.运用 ...

  2. Python学习笔记——开发图形界面wxPython、PyQt、PySide选哪一个?

    学习Python,就不得不提一下Python的图形界面开发,如果只用命令行写程序,用户体验不太好,难以胜任复杂的人机交互场景.Python的图形界面开发库常用的有:Tkinter.wxPython.P ...

  3. python学习--关注容易被忽略的知识点---(一)python基础

    本系列文章回顾了 python大部分关键的知识点,关注那些容易被忽略的知识点.适用于有一定python基础的python学习者. 本系列文章主要参考廖雪峰的python学习网站.该学习网站内容全面,通 ...

  4. Python全栈开发之路 【第一篇】:Python 介绍

    本节内容 一.Python介绍 python的创始人为荷兰人--吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本 ...

  5. python .net web开发对比_Python与C#/.NET——在使用Python开发大型web应用程序时,需要考虑哪些关键区别?...

    ".NET"不是一种语言.也许是Python vs.C#,或者Python/Django vs.C#/ASP.NET(或者选择任何你想要的"网络作品":Pyth ...

  6. python二次开发ug_Siemens NX (UG)中对于Python第三方包(函数库)的设置方法

    从NX 10开始,NX Open增加了对Python的支持,使得NX脚本语言的多元性进一步得到扩充.但对于大多数用户来说,选择Python作为脚本语言,主要是想利用Python社区提供的各种函数库或功 ...

  7. python网站开发实例视频_Python实战-让在职教育类网站的视频全自动播放

    阅读本文需要 5.8 分钟.文章同步发于微信公众号 somenzz,欢迎订阅,使用Python打造效率工具. 时间是公平的,因为每个人的一分钟都是 60 秒:时间又是最不公平的,有人一年的收获顶得上别 ...

  8. python学习环境+开发环境的选择和配置

    文章目录 安装包下载路径 安装 测试安装结果 开发环境介绍 下载安装pycharm 安装完成,运行 安装包下载路径 个人建议使用次新的版本,次新版本会有一些新功能的集成,并且相对稳定,使用人员也比较多 ...

  9. [python网站开发] 一.Django入门知识及创建第一个网站

    随着Python应用越来越广泛,学习Python相关知识越来越多的人选择.最新研究,Python已成为美国top高校最受欢迎的语言,同时国内用Python开发的网站越来越多,比较知名的网站如知乎.豆瓣 ...

最新文章

  1. DbType,OleDbType,SqlDbType区别
  2. 七 递归与二分法、匿名函数、内置函数
  3. 【数据结构与算法】之深入解析“修剪二叉搜索树”的求解思路与算法示例
  4. cf1556E. Equilibrium
  5. JQuery $作用
  6. Java用户修改密码
  7. Android项目运行junit测试类时出现错误Internal Error (classFileParser.cpp:3494)的解决办法...
  8. CCF NOI1153 素数环
  9. 很好的关于机器学习入门讲解(深入浅出)
  10. java反射集合类_java反射 - lara - OSCHINA - 中文开源技术交流社区
  11. Java岗招聘标准水涨船高,五年Java程序员表示面试太难了
  12. C#中使用Dictionary实现Map数据结构
  13. Tomcat 6.0 安装与启动
  14. 专家称摩尔定律将于2022年失效
  15. mysql计算同比和环比的区别_Mysql同比环比统计
  16. 浏览器登录系统登录不进去的问题
  17. epub文件如何打开?
  18. 微信小程序学习笔记——环境准备 【注册账号】【获取APPID】
  19. alpha-beta剪枝五子棋c语言,五子棋AI算法第三篇-Alpha Beta剪枝
  20. VS 2017经常出现打不开问题

热门文章

  1. 通过公网访问二级路由器
  2. 用PS修改GIF动图循环播放次数
  3. DeepReID: Deep Filter Pairing Neural Network for Person Re-Identification
  4. Linux 之管道通信
  5. 美国队用计算机计算排球队员,排球理论考试题库
  6. C语言中动态库/静态库的创建和使用
  7. 产品经理 项目经理 技术经理的区别
  8. 淘宝开店之旅_我要充一充
  9. ansible-playbook 远程启动程序ansible结束后程序也被关闭
  10. 计算机中ppt,计算机中的数.ppt