Python web 框架web.py「简约美」

web.py is a web framework for Python that is as simple as it is powerful. web.py is in the public domain, you can use it for whatever purpose with absolutely no restrictions.

web.py 是一个简单而强大的 Python Web 框架。web.py 属于公共领域,您可以将其用于任何目的,绝对没有任何限制。

Web.py github 地址:GitHub - webpy/webpy: web.py is a web framework for python that is as simple as it is powerful.        https://pypi.python.org/pypi/web.py

Web.py Cookbook 简体中文版:http://webpy.org/cookbook/index.zh-cn

web.py 0.3 新手指南:http://webpy.org/docs/0.3/tutorial.zh-cn

webpy 官网文档:http://webpy.org/

SQLite 

#coding:utf8
import webdb = web.database(dbn='sqlite', db='MovieSite.db')
render = web.template.render('templates/')urls = ('/', 'index','/movie/(.*)', 'movie','/cast/(.*)', 'cast','/director/(.*)', 'director',
)class index:def GET(self):movies = db.select('movie')count = db.query('SELECT COUNT(*) AS COUNT FROM movie')[0]['COUNT']return render.index(movies, count, None)def POST(self):data = web.input()condition = r'TITLE LIKE "%' + data.title + r'%"'movies = db.select('movie', where=condition)count = db.query('SELECT COUNT(*) AS COUNT FROM movie WHERE ' + condition)[0]['COUNT']return render.index(movies, count, data.title)class movie:def GET(self, movie_id):movie = db.select('movie', where='id=$int(movie_id)', vars=locals())[0]return render.movie(movie)class cast:def GET(self, cast_name):condition = r'CASTS LIKE "%' + cast_name + r'%"'movies = db.select('movie', where=condition)count = db.query('SELECT COUNT(*) AS COUNT FROM movie WHERE ' + condition)[0]['COUNT']return render.index(movies, count, cast_name)class director:def GET(self, director_name):condition = r'DIRECTORS LIKE "%' + director_name + r'%"'movies = db.select('movie', where=condition)count = db.query('SELECT COUNT(*) AS COUNT FROM movie WHERE ' + condition)[0]['COUNT']return render.index(movies, count, director_name)if __name__ == "__main__":app = web.application(urls, globals())app.run()

MYSQL

import web,json,sysurls=('(/|/index.html)','index','/wyw/dbQuery','dbQuery','/wyw/upload', 'upload','/(.*?)','normal'
)
#获取第二个参数为数据库名称(第一个参数为服务器端口号)
dbname=sys.argv[2] 
if dbname=="": dbname="users"db=web.database(dbn='mysql',host="localhost",port=3306,db=dbname,user='root',pw="admin")#上传文件
class upload:def POST(self):x = web.input(myfile={})f=open('static/upload/'+x['myfile'].filename,'wb')f.write(x['myfile'].value)return json.dumps({"state":"OK"})
#一般文件获取
class normal:def GET(self,arg1):f=open('static/'+arg1,'rb')return f.read() 
#首页获取
class index:def GET(self,arg1):f=open('static/index.html','rb')return f.read()
#数据库查询、添加、修改、删除,通常数据库操作都使用这个
class dbQuery:def GET(self):data=web.input()try:if(data.sql.find('select')==0):results=db.query(data.sql)lis=[]for item in results: lis.append(item)return json.dumps({"msg":"success","rows":lis})else:return json.dumps({"msg":"success","rows":db.query(data.sql)})except Exception as e:return json.dumps({"msg":str(e)})if __name__=="__main__":app=web.application(urls,globals())  app.run()

 引用:

简单而直接的Python web 框架:web.py_import web_strivinging的博客-CSDN博客

 web.py 十分钟创建简易博客:http://blog.csdn.net/freeking101/article/details/53020728

一个简单的web.py论坛:一个简单的web.py论坛 - RussellLuo - 博客园

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/108678.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PostgreSQL 数据备份恢复

文章目录 PostgreSQL 备份方式SQL备份(逻辑备份)文件系统备份(物理备份)归档备份(物理备份) 逻辑备份&恢复物理备份&恢复(全量)备份恢复 物理备份&恢复(某个…

《C++ primer》练习3.17:改写单词为大写

最近看《C primer》&#xff0c;有这样一个题目 从cin读入一组词并把它们存入一个vector 对象&#xff0c;然后设法把所有词都改写为大写形式。输出改变后的结果&#xff0c;每个词占一行。 考察 怎么输入字符串怎么存入vector对象怎么对字符串字符处理 代码 #include <i…

【Unity编辑器扩展】| Inspector监视器面板扩展

前言【Unity编辑器扩展】| Inspector监视器面板扩展一、ContextMenu和ContextMenuItem二、Custom Editors 自定义编辑器三、Property Drawer 属性绘制器总结前言 前面我们介绍了Unity中编辑器扩展的一些基本概念及基础知识,还有编辑器扩展中用到的相关特性Attribute介绍。后面…

无涯教程-JavaScript - ISPMT函数

描述 ISPMT函数计算在特定投资期间支付的利息。提供此功能是为了与Lotus 1-2-3兼容。 语法 ISPMT (rate, per, nper, pv)争论 Argument描述Required/OptionalRateThe interest rate for the investment.RequiredPerThe period for which you want to find the interest, an…

nvue文件中@click.stop失效

在nvue文件中在子元素使用click.stop失效&#xff0c;父元素的事件触发了 在uniapp开发中nvue文件是跟vue文件是不一样的&#xff0c;就比如click.stop阻止点击事件继续传播就失效了&#xff0c;这时我们需要在子元素事件中添加条件编译&#xff0c;这样就会解决这个问题 // …

(09_13)杭州站|阿里云 Serverless 技术实践营(Serverless + 大数据)开启报名!

活动简介 “Serverless 技术实战与创新沙龙 ” 是一场以 Serverless 为主题的开发者活动&#xff0c;通过一个下午的时间增进对 Serverless 技术的理解&#xff0c;快速上手,活动受众以关注 Serverless 技术的开发者、企业决策人、云原生领域创业者为主&#xff0c;活动形式为…

解决: 使用html2canvas和print-js打印组件时, 出现空白页

如图所示: 当我利用html2canvas转换成图片后, 然后使用print-js打印多张图片, 会出现空白页 使用html2canvas和print-js打印组件的文章可参考这个: Vue-使用html2canvas和print-js打印组件 解决: 因为是使用html2canvas转换成图片后才打印的, 而图片是行内块级元素, 会有间隙…

【建议收藏】职场人口头和书面沟通必备词语,瞬间高大上

这年头&#xff0c;在职场不但要会做&#xff0c;还要会说。 会说还不能平铺直叙的说&#xff0c;还要能把普通的工作说出话来&#xff0c;这就需要一些“考究”的用词。尤其是在某些头部企业的带领下&#xff0c;业务不够、产品不行、解决方案不够新&#xff0c;就用华丽的辞…

PPT 生成整数序列字典序的r-组合算法

生成整数序列字典序的r-组合算法 一、PPT效果展示二、问题2.1 简述2.2 算法简述2.3 例子 三、PPT实现 一、PPT效果展示 二、问题 2.1 简述 给定一个整数序列 (1&#xff0c;2&#xff0c;3&#xff0c;…n)&#xff0c;输出其所有字典序的r-组合&#xff0c;注意事项&#xf…

YOLO目标检测——交通标志数据集+已标注voc和yolo格式标签下载分享

实际项目应用&#xff1a;交通安全监控、智能交通系统、自动驾驶和辅助驾驶、驾驶员辅助系统、交通规划和城市规划等等。数据集说明&#xff1a;YOLO交通标志检测数据集&#xff0c;真实场景的高质量图片数据&#xff0c;数据场景丰富&#xff0c;图片格式为jpg&#xff0c;分为…

Vue3统一导出局部组件和全局组件

局部组件统一导出 components新增ComponentA.vue、ComponentB.vue两个组件 新增index.js进行组件统一导入 import ComponentA from ./ComponentA.vue import ComponentB from ./ComponentB.vueexport {ComponentA,ComponentB }使用 <template><ComponentA /><…

Java判断时间间隔来决定任务执行

数据库中的任务记录表的某条记录&#xff0c;状态一直无法变更&#xff0c;导致整个任务进程卡住&#xff0c;看了代码如下&#xff0c; 正常情况是要走到这个else里面&#xff0c;执行dockingGroup.setStatus(JobStatus.FAILED.getCode());将任务状态改为失败的 &#xff0c;查…