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

news2025/2/27 14:11:38

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 web

db = 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,sys
 
urls=(
    '(/|/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.coloradmin.cn/o/990402.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VBA系列技术资料1-177

MF系列VBA技术资料 为了让广大学员在VBA编程中有切实可行的思路及有效的提高自己的编程技巧,我参考大量的资料,并结合自己的经验总结了这份MF系列VBA技术综合资料,而且开放源码(MF04除外),其中MF01-04属于定…

外贸B2B建站怎么做?

答案是:外贸B2B建站可以用Wordpress来建站。 外贸企业在开展国际业务时,B2B网站的作用不可忽视。 它不仅展示了企业的实力和产品,还帮助企业建立起与潜在客户的联系。 如何打造一个有效的外贸B2B网站呢?本文将为您提供详细的建…

FPGA实现Cordic算法——向量模式

FPGA实现Cordic算法——向量模式 FPGA实现Cordic算法——向量模式1.cordic算法基本原理2.FPGA实现cordic算法向量模式i、FPGA串行实现cordicii、FPGA流水线实现cordiciii、实验结果 FPGA实现Cordic算法——向量模式 1.cordic算法基本原理 FPGA中运算三角函数,浮点数…

直播 | 丹望医疗王晓林博士“基于微流控的血管化器官/类器官芯片构建及其应用”

类器官模型具有高仿真性,与人体器官有高度相似的组织学特征和功能,尤其在肿瘤模型中能够较好保留肿瘤异质性等优势,在精准医疗及药物筛选等领域具有广泛的应用前景。同时,基于微流控技术的器官芯片能在微流体装置上实现多重微环境…

了解测试划分

界面测试 肉眼直观看到的,都属于界面,例如 WEB站(通过浏览器打开的网站),APP,小程序,公众号 界面的重要性:用户和软件交流的时候,通常都是通过界面进行交互的 业界测试界面的时候,参考软件规格说明书,UI视觉稿 可靠性测试 可靠性 正常运行时间/(正常运行时间非正常运行时…

Web3新品牌ZAN亮相外滩大会 为海外客户提供全栈安全可信技术

9月8日上午,Web3品牌ZAN在外滩大会正式发布,为香港及海外市场提供面向Web3的技术解决方案,尤以安全合规类技术产品为主。原蚂蚁链CTO张辉担任ZAN CEO。 张辉介绍,ZAN面向香港及海外市场的合规机构及创新型公司,提供支持…

陪诊系统|陪诊软件开发|陪诊系统搭建功能

为了顺应不断变化的市场需求,有些行业慢慢销声匿迹,有些行业刚刚崭露头角,目前陪诊的市场需求也在逐渐扩大,陪诊小程序也随之到来,主要面向独居老人,孕妇,残障人士等等给予专业性的陪诊就医服务…

U盘提示有写保护,处理方式

第一步: 下载ChipGenius,检测U盘的主控产商和型号 主控厂家:安国,主控型号:AU6989SN-GTD 第二步: 根据主控产商和型号,在https://www.upantool.com/liangchan/Alcor/上找到符合型号的量产工具&#xff…

3D模型格式转换工具HOOPS Exchange与CAD Exchanger的对比分析

选择CAD数据转换SDK是一个复杂的过程,错误的决定可能会浪费大量的时间和开发资源。在这个领域,HOOPS Exchange和CAD Exchanger代表了CAD数据转换过程中的两个截然不同的选项。今天我们将其做一组对比分析,希望能对您有所帮助~ 一、HOOPS Exc…

理解 React 服务器组件

自从 React 被引入开发社区以来的十年里,它经历了几次演变。React 团队在发生根本性变革时并不害羞:如果他们发现了一个更好的问题解决方案,他们就会带着它运行。 几个月前,React 团队推出了 React Server Components&#xff0c…

什么是接口测试?

接口测试概述 什么是接口 现在的项目中基本是构建在各种API中。有自己提供的API,有调用别人的API。API就像是钥匙,每个门都需要钥匙去打开。要想去打开门,没有钥匙怎么行呢。所以API之所以重要,就是因为它是网络世界的通行证。 …

【计算机网络】 TCP协议头相关知识点

文章目录 TCP协议头 TCP协议头 我们来看一下TCP协议头里都有什么东西,研究一下为什么TCP协议是可靠的呢 TCP协议可靠是因为在协议头里带着一些校验的数据 首先是源端口和目的端口,这两个是UDP中也有的,但是UDP中只有这两个,没有…

C++多线程编程(第三章 案例3:把案例1改装成案例2的条件变量多线程方式)

由于案例1采用等待循环方式进行写入,如果更换成案例2的条件多线程方式,效率会大大增加,下面开始写出新的代码吧 主函数 /*1、封装线程基类XThread控制线程启动和停止; 2、模拟消息服务器线程,接收字符串消息&#xf…

11-JVM调优实战-1

上一篇:10-JVM调优工具详解 1.垃圾回收统计 jstat -gc pid 最常用,可以评估程序内存使用及GC压力整体情况 S0C:第一个幸存区的大小,单位KBS1C:第二个幸存区的大小S0U:第一个幸存区的使用大小S1U&#x…

HD系列边缘网关,助力工商业储能发展!

HD系列边缘网关具备低功耗、高性能、接口丰富等特点,可以实现如通信规约转换、远程调度、智能监测、通信管理等多种应用,适用于储能系统的能源管理系统。 1.1硬件接口 该产品板载瑞芯微 RK3568 处理器,可选配2G16G/432 等配置。机壳采用标准 …

zabbix使用 -- 添加监控节点、自定义监控项、触发器

目录 页面中的一些概念配置agent服务来获取目标主机数据对nginx服务器进行监控在网页中添加一台配置 自定义监控项 -- 以监控nginx为例1、开启nginx本身的统计功能2、编写脚本采集数据3、在zabbix-server里获取数据监控ssh进程监控cron进程 触发器报警1、注册一个企业微信2、微…

Spring MVC 请求映射路径的配置,实现前后端交互

目录 一、什么是请求映射路径 二、Spring MVC的请求参数 三、日期类型的参数传递 四、Spring MVC如何响应 JSON 数据 一、什么是请求映射路径 在Spring MVC中,请求映射路径(Request Mapping Path)是指与特定的请求处理方法关联的URL路径…

改善购买后客户体验的 7 种方法

购买后的客户体验涉及客户从您的品牌购买产品后的互动和体验。客户体验从第一个接触点开始,并影响他们的购买决策。但购买后的客户体验有助于留住客户并建立品牌忠诚度。这就是为什么它是您公司发展的核心。贝恩公司(Bain & Company)的研…

品牌渠道中的价值治理思路介绍

为什么要治理渠道价格? 价格的高低会影响产品的销量,间接影响品牌的发展,同时低价会存在传播性,不低价的店铺会受低价店铺的影响,为了销量会选择低价跟价,当低价链接不断增加,那渠道势必会越来…

简单聊聊Innodb崩溃恢复那些事

简单聊聊Innodb崩溃恢复那些事 Buffer Pool 整体架构Buffer Pool 管理策略redo 日志redo log fileMini-TransactionCheckPoint部分写出问题 崩溃恢复 undo日志整体结构日志格式记录格式purge回滚 总结额外参考 本文想用简单精炼的语言将Innodb崩溃恢复那些事情好好拾到拾到&…