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

python 复制代码
#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

python 复制代码
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 - 博客园

相关推荐
阿祖zu8 分钟前
内容创作 AI 透明化声明倡议与项目开源
前端·后端·github
lpfasd12313 分钟前
TypeScript + Cloudflare 全家桶部署项目全流程
前端·javascript·typescript
ZC跨境爬虫17 分钟前
极验滑动验证码自动化实战:背景提取、缺口定位与Playwright滑动模拟
前端·爬虫·python·自动化
前端Hardy32 分钟前
字节/腾讯内部流出!Claude Code 2026王炸玩法!效率暴涨10倍
前端·javascript·vue.js
糟糕好吃38 分钟前
AI 全流程解析(LLM / Token / Context / RAG / Prompt / Tool / Skill / Agent)
前端·后端·设计模式
快手技术44 分钟前
快手广告系统全面迈入生成式推荐时代!GR4AD:从Token到Revenue的全链路重构
前端·后端
前端Hardy1 小时前
大厂都在偷偷用的 Cursor Rules 封装!告别重复 Prompt,AI 编程效率翻倍
前端·javascript·面试
kyriewen1 小时前
Vite:比Webpack快100倍的“闪电侠”,原理竟然这么简单?
前端·javascript·vite
竹林8181 小时前
RainbowKit快速集成多链钱包连接:从“连不上”到丝滑切换的踩坑实录
前端·javascript
小小小小宇1 小时前
前端看go并发
前端