博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
web.py开发
阅读量:6849 次
发布时间:2019-06-26

本文共 4728 字,大约阅读时间需要 15 分钟。

 

web.py需要使用python2.X,所以安装python版本2.7.9

web.py 是一个轻量级Python web框架,它简单而且功能强大

web.py安装

安装python

(1)使用pip

pip install web.py

 安装的目录Python27\Lib\site-packages

 

(2) 下载release版本的web.py

下载下来之后,解压,打开cmd,cd到解压目录下,输入

python setup.py install

查看安装是否成功,pip list

web.py 测试

新建hello.py

import web        urls = (    '/(.*)', 'hello')app = web.application(urls, globals())class hello:            def GET(self, name):        if not name:             name = 'World'        return 'Hello, ' + name + '!'if __name__ == "__main__":    app.run()

进入保存的目录

python hello.py

在浏览器输入http://127.0.0.1:8080/

命令窗口显示

 第一部分(‘/’)是一个匹配URL 的正则表达式;第二部分(‘index’)是一个类名,匹配的请求将会被发送过去

 若要制定另外的端口使用python code.py 后面添加IP 地址/端口

 如:http://192.168.5.239:8080/aa

 web.py的输出html页面

import web        urls = (    '/(.*)', 'hello')app = web.application(urls, globals())class hello:            def GET(self, name):	return open(r'aa.html','r').read()if __name__ == "__main__":    app.run()

aa.html页面是已有的html页面

web.py学习

1.URL映射

  完全匹配

  模糊匹配

  带组匹配

  

import web        urls = (	'/index','index',	'/blog/\d+','blog',        '/(.*)', 'hello')app = web.application(urls, globals())class index:	def GET(self):		return 'index method' class blog:	def GET(self):		return 'blog method' 		class hello:            def GET(self, name):        if not name:             name = 'World'        return 'Hello, ' + name + '!'if __name__ == "__main__":    app.run()

 

注:

  范围大的要放在后面 

2.请求处理

  请求参数获取

    web.input()

  请求头获取

    web.ctx.env

hello.py

import web        urls = (	'/index','index',	'/blog/\d+','blog',    '/(.*)', 'hello')app = web.application(urls, globals())class index:	def GET(self):		query = web.input()		return query class blog:	def POST(self):		data = web.input()		return data 		class hello:            def GET(self, name):        return open(r'hello.html').read()if __name__ == "__main__":    app.run()

 hello.html

	hello 

表单提交后

 

 修改代码获取请求头

import web        urls = (	'/index','index',	'/blog/\d+','blog',    '/(.*)', 'hello')app = web.application(urls, globals())class index:	def GET(self):		query = web.input()		return query class blog:	def POST(self):		data = web.input()		return data 	def GET(self):		data1 = web.ctx.env		return data1		class hello:            def GET(self, name):        return open(r'hello.html').read()if __name__ == "__main__":    app.run()

  

3.相应处理

  (1)模板文件读取

    render.index("参数")

hello.py    

import webrender = web.template.render("templates")       urls = (	'/index','index',	'/blog/\d+','blog',      '/(.*)', 'hello')app = web.application(urls, globals())class index:	def GET(self):		query = web.input()		return query class blog:	def POST(self):		data = web.input()		return data 	def GET(self):		data1 = web.ctx.env		return data1		class hello:            def GET(self, name):        return render.hello1(name)if __name__ == "__main__":    app.run()

在hello.py同级目录下,存在templates/hello1.html

hello1.html

$def with(name)	hello1	

hello1,$name

 

  

  (2)结果数据处理

    model.select("sql)

安装已编译版本  ,安装已编译版本

goods.py

import webimport MySQLdbimport MySQLdb.cursorsrender = web.template.render("templates")       urls = (	'/goods','goods')app = web.application(urls, globals())class goods:	def GET(self):		conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='root',db='mshop_dev',port=3306,charset="utf8",cursorclass=MySQLdb.cursors.DictCursor)		cur=conn.cursor()		cur.execute("select * from mshop_goods limit 5")		r=cur.fetchall()		cur.close()		conn.close()		print r		return render.goods(r)if __name__ == "__main__":    app.run()

goods.html

$def with(r)	
goods

商品列表

    $for l in r:
  • $l.get('goods_id'),$l.get('goods_name')=>$l.get('store_name')

  

  (3)URL跳转

    web.seeother("/")

 

import webimport MySQLdbimport MySQLdb.cursorsrender = web.template.render("templates")       urls = (	'/index','index',	'/goods','goods',    '/(.*)', 'hello')app = web.application(urls, globals())class index:	def GET(self):		return web.seeother("/goods")class goods:	def GET(self):		conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='root',db='mshop_dev',port=3306,charset="utf8",cursorclass=MySQLdb.cursors.DictCursor)		cur=conn.cursor()		cur.execute("select * from mshop_goods limit 5")		r=cur.fetchall()		cur.close()		conn.close()		print r		return render.goods(r)class hello:            def GET(self, name):        return web.seeother("http://baidu.com")		if __name__ == "__main__":    app.run()

  输入http://127.0.0.1/index跳转到http://127.0.0.1:8080/goods

  输入http://127.0.0.1/hello跳转到https://www.baidu.com/

 

注:

  web.py的静态文件必须放在static文件夹下面

  web.py并不具备部署网站的能力,因此对于web.py程序只能在本地访问,如果要进行部署必须要使用apache、nginx、lighttped

  通过FastCGI结合lighttpd是web.py,通过该方法可以处理百万次的点击

 

转载地址:http://acrul.baihongyu.com/

你可能感兴趣的文章
oracle触发器select into和cursor用法的区别
查看>>
TortoiseGit + msysgit 记住帐号密码方法及使用密匙的方法
查看>>
Python中的else
查看>>
zend_db连接mysql(附完整代码)(转)
查看>>
五个人二个月为什么不等于十个人一个月
查看>>
matlab 与 VC 混编函数参数传递<2>
查看>>
Silverlight for Windows Phone开发系列课程
查看>>
Ajax经典交互讲解
查看>>
如何让windows更高效?
查看>>
windows 搭建 subversion+TortoiseSVN
查看>>
windows8安装xna4.0不能开发Xbox和PC端游戏的解决办法
查看>>
jQuery.validate errorPlacement
查看>>
转载:linux vi命令详解
查看>>
EM算法原理
查看>>
System.Drawing.Color的颜色对照表
查看>>
一次滚动一屏的滚动条行为实现
查看>>
.NET面试题(三)
查看>>
自定义TreeList单元格 z
查看>>
【百度地图】- 学习.1
查看>>
JS函数重载解决方案
查看>>