如何用Python搭建一个网站?
Python主流的应用包括:Web开发、图形界面开发、系统网络运维、网络编程、科学数字计算、3D游戏开发,而目前用的最多的就是Web开发和数据科学计算。
大家所熟知的Anaconda,就主要集成了这两方面的包,供用户使用,十分方便。
题主想要用python搭建网站,就必须学会相应的Web开发框架,现在比较热门的web框架是Flask和Django,随之而来的就是HTML、JavaScript、CSS以及数据库的技术,结合起来,才能开发出一个网站。
我用Flask开发过一个数据分析平台,那就从Flask开始介绍。
这是我收藏的Flask教程和学习资源。有需要的可以私我。
1. Flask
Flask 很轻,本身就是用Python语言编写的,兼容性很高,它采用Werkzeug + Jinja2模板,再加上一系列的extension功能 ,花很少的成本就能够开发一个简单的网站,非常适合初学者学习。
如上,就是一个简单的“hello word”页面的实现。
如果你是一个小团队,开发网站的复杂性不高,便推荐采用Flask开发,如果网站功能很复杂,则推荐下面这个商业上应用很广的框架,Django
2. Django
Django是一个全能型框架,也是Python Web开发使用最多的框架,最有学习的价值,如果初学者接触,一定要沉得住气,才能真正学好。
Django基于MVC构造,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV模式。
如果你使用的IED是pycharm,那么可以直接右键新建Django项目
如上图,你还看到了flask、pyramid、Web2py等类型的项目,其中,Django排在最前面,我觉得也说明了它的重要性和常用性。
最为新手,你可以看一下菜鸟的Django教程:http://www.runoob.com/django/django-tutorial.html
然后再看官方文档,结合一些视频课程一起学习,学习资源还是挺丰富的。
当然,除了上面两个常用的python Web框架之外,还有如下几种也可以了解一下
3. Tornado
Tornado是一个性能很高的框架。Tornado 是一个很好的框架,支持异步处理的功能,这是它的特点,其他框架不支持。
所以,它是非阻塞式服务器,而且速度相当快。下面就是一个经典的hello word 示例。
另外一点是,Tornado 的设计似乎更注重 RESTful URL。但 Tornado 提供了网站基本需要使用的模块外,剩下的则需要开发者自己进行扩展,所以,用tornado的一个很明显的好处是,有些轮子自己造才能学到东西。
知乎就是基础 Tornado 开发的。
另一个好处是因为是facebook开源的,加上自身优秀的代码质量和傲娇的效率表现,目前非常火,诞生了一大批的优秀产品,除了知乎外, quora,INK361 ,42区 . 遇见也是Tornado开发的。
Tornado的官方文档非常棒,可以去看看:http://www.tornadoweb.org/en/stable/
4. Bottle
Bottle 和 Flask 都属于轻量级,是一个非常精致的WSGI框架。Bottle适用于小型的Web开发,在应用程序规模比较小的情况下可以实现快速开发。但是由于自身功能所限,对于大型的Web程序,Bottle的功能略显不足。
上面是一个简单的示例。
5. web2py
web2py是我学习Python的时候,接触的第一个web框架,当时觉得很神奇,它直接提供了一个管理页面,供administrator操作,创建账户和密码都不是难事,简单,小巧,灵活。
但或许你也已经听说过了,这个框架是基于Python2.7开发的,但维护和更新没有跟上,不然那还有flask什么事啊!
web2py是Google 在 web.py 的基础上二次开发而来的,兼容 GAE(Google App Engine),性能很高。
6. Quixote
著名的 豆瓣 就是基于 Quixote 开发的,跟上面几个框架不同,Quixote 的路由会有些特别。另外 Quixote 的性能据说也好
另外,有一个Python的资源推荐给你:https://github.com/tingtinglu/awesome-python-cn
其他的就不了解了。祝君好运!
Python搭建网站,利用现成的框架还是挺简单的。在这里举一个例子-利用Flask搭建一个网站。
Flask
Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。Flask创建一个应用很简单,只需要一行代码就可以创建一个应用。一个最小的应用看起来像这样:
直接执行python hello.py,就可以看到页面就可以访问了,这只是官方给出的一个示例,方便学习。
应用初始化
所有 Flask 程序都必须创建一个程序实例。 Web 服务器使用一种名为 Web 服务器网关接口(Web Server Gateway Interface, WSGI)的协议,把接收自客户端的所有请求都转交给这个对象处理。程序实例是 Flask 类的对象,经常使用下述代码创建:
Flask 类的构造函数只有一个必须指定的参数,即程序主模块或包的名字。在大多数程序中, Python 的 __name__ 变量就是所需的值。
路由和视图函数
客户端(例如 Web 浏览器)把请求发送给 Web 服务器, Web 服务器再把请求发送给 Flask程序实例。程序实例需要知道对每个 URL 请求运行哪些代码,所以保存了一个 URL 到Python 函数的映射关系。处理 URL 和函数之间关系的程序称为路由。在 Flask 程序中定义路由的最简便方式,是使用程序实例提供的 app.route 修饰器,把修饰的函数注册为路由。下面的例子说明了如何使用这个修饰器声明路由:
index() 函数注册为程序根地址的处理程序。如果部署程序的服务器域名为 www.example.com,在浏览器中访问 http://www.example.com 后, 会触发服务器执行 index() 函数。这个函数的返回值称为响应,是客户端接收到的内容。如果客户端是 Web 浏览器, 响应就是显示给用户查看的文档。
启动服务器
程序实例用 run 方法启动 Flask 集成的开发 Web 服务器:
__name__==’__main__’ 是 Python 的惯常用法,在这里确保直接执行这个脚本时才启动开发Web 服务器。 如果这个脚本由其他脚本引入,程序假定父级脚本会启动不同的服务器,因此不会执行 app.run()。服务器启动后, 会进入轮询,等待并处理请求。轮询会一直运行,直到程序停止,比如按Ctrl-C 键。
Flask开发的网站实例
- 本示例中网站的结构如下
- 启动服务器界面
- 访问WEB页面
整个是利用Flask自己搭建的一个WEB页面,数据库试过mysql和mongodb都可以正常访问。整体感觉Flask的学习成本会比Django低,而且也比Django更灵活。
转载请注明:徐自远的乱七八糟小站 » 如何用Python搭建一个网站?
221 赞 踩 18评论
分享