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 - 博客园

相关推荐
给月亮点灯|20 小时前
Vue基础知识-脚手架开发-使用Axios发送异步请求+代理服务器解决前后端分离项目的跨域问题
前端·javascript·vue.js
张迅之20 小时前
【React】Ant Design 5.x 实现tabs圆角及反圆角效果
前端·react.js·ant-design
蔗理苦21 小时前
2025-09-05 CSS3——盒子模型
前端·css·css3
二川bro1 天前
第25节:VR基础与WebXR API入门
前端·3d·vr·threejs
上单带刀不带妹1 天前
Node.js 的模块化规范是什么?CommonJS 和 ES6 模块有什么区别?
前端·node.js·es6·模块化
缘如风1 天前
easyui 获取自定义的属性
前端·javascript·easyui
诗书画唱1 天前
【前端教程】JavaScript 实现图片鼠标悬停切换效果与==和=的区别
开发语言·前端·javascript
光影少年1 天前
前端上传切片优化以及实现
前端·javascript·掘金·金石计划
喜葵1 天前
前端安全防护深度实践:从XSS到供应链攻击的全面防御
前端·安全·xss
_r0bin_1 天前
分片上传-
前端·javascript·状态模式