① python怎么做web开发
用Python做Web开发,Django框架是个非常好的起点。
Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。它最初是被开发来用
于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。
Django已经成为web开发者的首选框架,是一个遵循 MVC 设计模式的框架。MVC是Model、View、Controller三个单词的简写,分别
代表模型、视图、控制器。Django其实也是一个MTV 的设计模式。MTV是Model、Template、View三个单词的简写,分别代表模型、
模版、视图 。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板
(Template)和视图(Views),称为 MTV模式。
Django 视图不处理用户输入,而仅仅决定要展现哪些数据给用户,而Django 模板 仅仅决定如何展现Django视图指定的数据。或者说,
Django将MVC中的视图进一步分解为 Django视图 和 Django模板两个部分,分别决定 “展现哪些数据” 和 “如何展现”,使得
Django的模板可以根据需要随时替换,而不仅仅限制于内置的模板。
至于MVC控制器部分,由Django框架的URLconf来实现。URLconf机制是使用正则表达式匹配URL,然后调用合适的Python函数。
URLconf对于URL的规则没有任何限制,你完全可以设计成任意的URL风格,不管是传统的,RESTful的,或者是另类的。框架把控制层
给封装了,无非与数据交互这层都是数据库表的读,写,删除,更新的操作。在写程序的时候,只要调用相应的方法就行了,感觉很方便。程
序员把控制层东西交给Django自动完成了。 只需要编写非常少的代码完成很多的事情。所以,它比MVC框架考虑的问题要深一步,因为
我们程序员大都在写控制层的程序。这个工作交给了框架,仅需写很少的调用代码,大大提高了工作效率。
更多技术请关注Python视频教程。
② 如何用python和web.py搭建一个网站
一、使用工具:python、web.py
二、搭建步骤:
1、 环境搭建。
安装python2.7.10,注意要把python路径加入系统环境变量。版本不能低于2.7.9,但不能用3.0以上,web.py支持不好。安装web.py, 官方网下载来装就行,记得是解压后进去:python setup.py install,安装wingIDE,这个是最好用的python编辑器,装apache并配置python-wscgi,
2. 开发。
建立数据库建议写个生成脚本,比如createDataBase.py,有改动重新运行一遍,不要试用ide去建。
三、注意事项:注意要把python路径加入系统环境变量。版本不能低于2.7.9,但不能用3.0以上,web.py支持不好。
③ 如何用Python做Web开发
1.python入门
推荐老齐《从零开始学python》,《python简明教程》,这两本书很适合小白入门(像我一样长期徘徊在编程门外的人)
2.python进阶
推荐《python学习手册》,python学习手册的前半部分与在入门教程中的基础部分相重复,后面部分对python的介绍更细致,比如面向对象的这部分对于小白理解相对容易。
还有一本《python cookbook》,这本是在讲述python的经典用法,目前读过函数,装饰器以及网络编程这三部分,在不断的敲玩具代码的过程中,会发现书中讲的例子不断会出现。
3.学习web开发,自然要涉及到基于python的web 框架。
1)flask
flask如同官方所描述的那样,是一个web微框架,用几行代码就可以实现一个在hello world,现在的个人感觉是flask确实适合新手入门。基于这个原则,
推荐《flask web 开发》这本书,这本书简直是良心,讲的很细,并且在github上有源码,可以很容易跟着作者的步骤去学习,不懂得的地方可以去问谷歌或者qq群。
推荐的第二本是《building web applications with flask》这本书是对flask框架的细化,深入讲解flask的模板,restful等等,虽然是英文,但是叶能顺利阅读下去
推荐的第三本是《flask Framework cookbook》,这三本书是一个不段进阶的部分。
2)django
django是大而全,开箱即用,在flask了解的差不多的时候去了解,毕竟生成环境用的django相对多一点。
django学习可以看得书:(1)tango with django只有一个应用去学习,对于新手友好,可以比对github源码
(2)django by example 注重实战,有几个实例,blog, shop etc,涉及django基础,redis,celery,solr,ajax,很全面,也是web开发常用的技术
4.在学习框架的过程中,会不断体会到前端的知识也是要补回来,可以w3c school看一下。
5.数据库,在python中内置了sqlite, sql命令有相同之处,路线是sqlite, mysql, mongodb,有个逐渐过度的过程。
6.了解http的具体工作流程,这点目前还是有点模糊
7.工具集:sublime(需要配置,主要用于python编程,神器谁用谁知道), vim, firebug, firefox, linux,github(代码大宝库,各种代码)
8.学习的过程觉得几点很重要
1)做好笔记,同样的问题会遇到第二次,有个笔记容易复查
2)善用谷歌,善用qq与论坛,你现在遇到的问题,大多数前人都遇到过,stackflow是个好地方
3)迷茫的时候还是坚持看,因为毕竟是小白,不懂的太多,你总要把他弄懂
4)有时间了可以把算法与数据结构补起来
④ python web开发需要学哪些东西
什么是web开发呢,其实就是开发一个网站了。那开发网站需要用到哪些知识呢
1、python基础,因为用python开发的,所以python指定要会,最起码你也得会条件判断,循环,函数,类这些知识;
2、html、css的基础知识,因为要开发网站,网页都html和css写的,最起码这些知识你得会,就算不会写前端,开发不出来特别漂亮的页面,网站,最起码要能看懂html标签是;
3、数据库基础知识,因为开发一个网站的话,数据存在哪里,就是在数据库里,那你最起码要会数据库的增删改查吧,要不然怎么存数据,取数据呢
上面这些知识会的话,就基本上可以了,可以开发一个简单的小站就没有问题了,如果想开发比较大型的网站,业务逻辑比较复杂的,那就得用到其他的知识了,比如说redis、MQ等等。
开发前的准备:
1、安装好 python3.5版本
2、安装好pycharm,是咱们的开发工具
3、安装好django,版本1.9,使用pip install django==1.9命令安装即可
4、安装好navicat或者其他操作数据库的可视化工具,因为咱们要用到数据库,要看数据库、改数据
前面咱们安装了django,django是一个python开发的web框架,大而全,几乎你用到的方法,它全都有,它里面已经实现了我刚才说的所有的功能,咱们只需要用把它拿过来用就可以了。当然python还有很多web开发框架,比如说web.py、flask、tornado、bottle等等,他们在原理上和django一样,但是他们的功能都没有django多,django也是社区最大,活跃用户最多的一个框架。
⑤ 如何用python做web开发 django环境配置
下载
python-2.7.2.msi
Django-1.3.1.tar.gz
Django暂时只支持python
2.4
~
2.7,
在Django-1.3.1\docs\intro\install.txt中有说明:
Being
a
Python
Web
framework,
Django
requires
Python.
It
works
with
any
Python
version
from
2.4
to
2.7
(e
to
backwards
incompatibilities
in
Python
3.0,
Django
does
not
currently
work
with
Python
3.0;
安装python-2.7.2,并添加环境变量
D:\Python27;D:\Python27\Scripts;
命令行进入Django-1.3.1目录,
安装django
python
setup.py
install
Django提供了tutorial
Django-1.3.1\docs\intro
新建站点
E:\python>django-admin.py
startproject
mysite
启动django自带的web服务器
E:\python>cd
mysite
E:\python\mysite>manage.py
runserver
Validating
models...
0
errors
found
Django
version
1.3.1,
using
settings
'mysite.settings'
Development
server
is
running
at
http://127.0.0.1:8000/
Quit
the
server
with
CTRL-BREAK.
在浏览器中输入
http://127.0.0.1:8000/
浏览页面
ps:
在windows7中按上述步骤配置好后,出现下列情况
D:\work\python>django-admin.py
startproject
mysite
Usage:
django-admin.py
subcommand
[options]
[args]
...
很显然django-admin.py不参识别startproject命令,其它命令也不能识别。不过,另一种方式却可以
D:\Python27\Scripts>python
django-admin.py
startproject
mysite
这说明django-admin.py
后面的参数不能传递进去,可以通过修改注册表实现。
输入regedit,
进入
HKEY_CLASSES_ROOT\py_auto_file\shell\open\command
,
"C:\Python26\python.exe"
"%1"
change
it
to
"C:\Python26\python.exe"
"%1"
%*
成功解决了
⑥ 用Python进行web开发需要学习什么
1 写在前面
在没有接触互联网这个行业的时候,我就一直很好奇网站是怎么构建的。现在虽然从事互联网相关的工作,但是也一直没有接触过Web开发之类的东西,但是兴趣终归还是要有的,而且是需要自己动手去实践的。Web开发的途径有好多种,比如传统的.Net,还有很火爆的Java。
Python作为一种灵活好学的脚本语言,已经越来越受程序员的欢迎和热捧,甚至成为程序员的必备技能。Django是Python的Web开放框架,好多人说学习Python就是在学Django,从这也可以看出Django的强大。博主也是刚刚接触Django,纯属个人兴趣爱好,望与广大博友共同学习和讨论。
2 什么是Web开发?
在介绍什么是Web开发之前,先简单提及一下大家熟悉的WWW。WWW(World Wide Web)简称万维网。通俗地说,WWW是一套技术规范,它里面包含很多技术和协议,例如html技术、url、http协议等。人们通过这套技术规范,可以对Internet网络上主机的资源进行描述,进而可以通过一个WWW的客户端访问这些资源。常用的WWW客户端有IE、Foxfire等浏览器。由于WWW技术的出现,人们可以在世界上的任何一个角落,通过一个浏览器访问因特网上任何一台远程计算机上的资源,或与远程计算机进行通讯。20世纪由于WWW技术的出现,因而诞生了“地球村”的概念。
对于python初学者来说,能找到一个好老师学习格外重要,这能决定你是不是可以做出好的项目,在python开发的路上越走越轻松,如果现在的你缺乏学习经验,找不到老师指导你学习,可以加企 鹅扣-Q前面112再加上中间的983以及最后四位数4903,连在一起就可以了。
而Web就是用来表示Internet主机上供外界访问的资源的。在英语中web即表示网页的意思,网页也统称为web资源。Internet上供外界访问的Web资源主要分为如下两类: 静态web资源:指web页面中供人们浏览的数据始终是不变的,例如,html页面;
动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。
微软对Web开发的定义:Web开发是一个指代网页或网站编写过程的广义术语。这些页面可能是类似于文档的简单文本和图形。页面也可以是交互式的,或显示变化的信息。编写交互式服务器页面略微复杂一些,但却可以实现更丰富的网站。如今的大多数页面都是交互式的,并提供了购物车、动态可视化甚至复杂的社交网络等现代在线服务。
通俗的说,web开发就是我们说的做网站。它分为网页部分和逻辑部分也就是我们说的前台与后台,前台负责与用户的交互,显示数据。用到HTML显示数据,CSS控制样式,JS编写复杂交互。后台编写处理这些逻辑的程序,可以用C#,java,php等语言。
⑦ 如何开发一个Python web框架
首先你需要知道一个Web应用基本的请求处理流程。以最简单最原始的动态网页为例,你点击链接(GET),提交表单(POST),就是与服务器端建立了连接之后发送了一个HTTP请求(RFC2616 5.1节,之后都以HTTP 1.1为例),里面至少有方法(动词,就是GET啦POST什么的,详见RFC2616第9节),地址(URL),HTTP版本,还可能带上Cookie(会话的一般实现机制),缓存相关的信息(RFC2616 13节),User-Agent串等等一堆信息。对于POST请求我们还有表单内容作为请求实体(RFC2616 7.2节),里面是你填写的表单内容。
于是我们有了一些关于请求的数据,不过现在一般来讲这些数据还在前端服务器(反向代理,比如nginx,暂且忽略掉负载均衡,反正是透明的,也不考虑裸WSGI容器直接扛请求的情况)的手上,还没有传进后端语言(这里是Python)。我们就针对每一种语言都有特定的机制,用来将HTTP的请求信息映射到相应的编程语言范畴,叫做Web服务器界面(Web server interface),通用如CGI/FCGI/SCGI,特定于某一语言如WSGI/PSGI/Rack/...,特定于某一操作系统如ISAPI(这货还活着?),一些已经不再使用的就不提了。总之在Python世界里这就是WSGI(PEP 3333, Web Server Gateway Interface),它就定义了Python语言与Web服务器之间的界面。在WSGI里,
请求的处理过程被映射为对应用callable的调用(application(environ, start_response),知乎不支持inline代码块?);
请求信息被映射到environ字典中的相应键值,比如请求方法被映射到environ['REQUEST_METHOD'],请求的“相对路径”被映射到environ['PATH_INFO'](过度简化;暂且不提WSGI应用挂载点,框架层一般也不用关心这个,挂载WSGI应用一般是WSGI容器如gunicorn、uWSGI之类组件的工作);
发送响应头的动作被映射到调用start_response(status, response_headers)(不考虑可选的第三个参数异常信息);
返回响应数据被映射到application返回iterable的动作。
于是响应便从Python返回到Web服务器,再被发送回浏览器,浏览器将响应内容渲染,一个请求就完成啦。
有了这样的感性认识,那么我们作为Python Web开发框架的作者,要做的事情就是在WSGI规范的基础之上,提供尽可能便捷的开发手段和尽可能低的框架开销,也即我们的代码将要工作在WSGI与业务逻辑的中间层。架构上,Web开发框架或多或少都遵循MVC的设计模式(Django管它叫MTV,其实差不多)。同时,由于框架位于中间件的位置,加上其鼓励模块化与代码复用的性质,自然需要为常见的HTTP操作提供抽象。这里就可以展开一些话题:
请求路径到view/controller的映射,请求参数的解析(routing,也叫路由)。
正则匹配的方案,比如Django内置了一个简单的正则表达式解析组件,能解析一般常见语法的正则表达式,把capturing groups解析成位置参数,named capturing groups解析成关键字参数。
也有DSL的方案,比如Werkzeug的路由组件。
请求实体的处理。表单解析,配合Web服务器进行上传文件处理。
正常的urlencoded表单,JSON表单,text/plain数据,multi-part表单
multi-part附件,附件操作API
大文件上传(这个一般会被前端服务器保存在磁盘上的临时文件里,比方说nginx就是这么实现的)。
会话。HTTP是无状态(stateless)的,这个特点非常重要。如果没有会话,你连续做几个请求,却没有手段证明你们是同一个人/同一台机器(你完全可能是代理服务器)。
存储会话数据的会话后端(内存数据结构?文件?RDBMS?Redis?Memcache?)
安全机制(HMAC什么的,可以参考beaker的secure cookie实现)
请求处理流程中的会话中间件(从Cookie中提取会话,从query string中提取会话,从自定义头中提取会话,等等)
View/Controller界面。发挥你的创造力,用上你的工程经验。
Function-based or Class-based views? 参考:Django, Bottle, web.py, Tornado等一票框架的做法
框架的可选机制与服务如何暴露,
装饰器?(比如@login_required 这种额外要求)
回调?(能想到的只有Tornado和Twisted这种异步框架做事情的方式,还有整个JS生态系统都是回调(不考虑Promise什么的)的思路)
传入应用(业务逻辑)层的数据结构如何设计?(HttpRequest等价物,名字可能记不清了)
响应数据结构如何设计?(HttpResponse等价物,同上)
数据库操作封装。Web应用基本都是数据为中心,这个组件非常有必要,也是撰写可复用代码必须的一环,毕竟光是框架抽象了,数据库操作还是裸SQL什么的,到时候生产环境一换(比如MySQL变pgsql)还不是傻眼。
关系型数据库。一站式解决方案参考:Django ORM、SQLAlchemy;轻量级解决方案参考各数据库Python绑定。
非关系数据库。各数据库Python绑定(pymongo, riak, redis-py之类),这个没什么可替代方案了,因为本来各种NoSQL库都是适应某一特殊需求设计的,没什么互相替换的必要,那意味着重新进行技术选型。
未完待续
接下来的内容:
主要响应AJAX/API请求的框架设计思路
Python下实时Web框架思路
框架设计哲学
框架性能分析方法
本人才疏学浅,大项目没做过,小项目也没怎么起飞过,请各位阅读我的观点时务必留心。读到最后非常感谢。