文档章节

python web.py学习

 杨百盛
发布于 2015/11/13 16:47
字数 394
阅读 20
收藏 0
#
# filename: persons.py
#

import sys
import sqlite3

# management of user's data
# struct of table aa: id (int), name (varchar)
class person:
    db = object() # nonlocal variable
    db_op = object() # nonlocal variable

    is_open = False
    
    def __init__(self):
        self.is_open = False
        self.db_open()

    def db_open(self):
        if (self.is_open == False):
            try:
                self.db = sqlite3.connect("./db/sqlite_db.db",check_same_thread = False)
                self.db_op = self.db.cursor()
            except Exception, e:
                self.db.close()
                self.is_open = False
            else:
                self.is_open = True
            
    def list(self):
        self.db_open()
        
        if (self.is_open == False): return "Error happens with database"

        try:
            self.db_op.execute("select * from aa")
        except Exception, e:
            self.db.close()
            self.is_open = False
            return e
        else:
            return self.db_op.fetchall()

    def add(self, id, name):
        self.db_open()
        
        if (self.is_open == False): return "Error happens with database"
        
        try:
            sql = "insert into aa values({0}, '{1}')".format(id, name)
            print sql
            self.db_op.execute(sql)
            self.db.commit()
        except Exception, e:
            self.is_open = False
            self.db.close()
            return e

        return "The new user has been joined. id = {0}, name = {1}!".format(id, name)

    def delete(self, id=0):
        self.db_open()
        
        if (self.is_open == False): return "Error happens with database"
        
        try:
            if (id == 0):
                self.db_op.execute("delete from aa");
            else:
                self.db_op.execute("delete from aa where id={0}".format(id))
        except Exception, e:
            self.db.close()
            self.is_open = False
            return e
        else:
            self.db.commit()
            return "The data is deleted successfully."
#
# filename: webserv.py
#

import sys
import web

import persons
           
urls = (
    '/(.*)/', 'redirect',
    '/user/list', 'listusers',
    '/user/add', 'adduser',
    '/user/delete', 'deleteuser'
    )

app = web.application(urls, globals())

u = persons.person()

class redirect:
    def GET(self, path):
        web.seeother('/' + path)
        
class listusers:
    def GET(self):
        return u.list()

class adduser:
    def GET(self):
        input = web.input()
        id = input.get('id', 0)
        name = input.get('name', '')
        
        if (id == 0 or name == ''):
            return('Please provide the id and the name')
        else:
            return u.add(id, name)
        
class deleteuser:
    def GET(self):
        input = web.input()
        id = input.get('id', 0)
        
        return u.delete(id)



if __name__ == "__main__":
    app.run()


两个文件代码如上:persons.py 及 webserv.py

数据库:sqlite3

python版本:2.7

运行:E:\workshop\python>python webserv.py

测试:

1. 新增    输入:http://localhost:8080/user/add?id=3&name=wo 返回:

The new user has been joined. id = 3, name = wo!

2. 查询   输入:http://localhost:8080/user/list 返回:

[(1, u'wo'), (2, u'wo'), (3, u'wo')]

3. 删除  输入:http://localhost:8080/user/delete?id=1 返回:

The data is deleted successfully.


© 著作权归作者所有

粉丝 0
博文 10
码字总数 2621
作品 0
崇明
私信 提问
Web.py 初探:安装与HelloWorld

1、web.py简介 web.py是一个基于Python,简单而又强大的开源Web框架。 由于自己总是对轻量级的东西比较偏爱。因此选择了web.py来学习Web开发。目前关于web.py的相关资料比较少(甚至连Wikip...

鉴客
2011/09/19
7.4K
1
简单而直接的Python web 框架:web.py

web.py 是一个Python 的web 框架,它简单而且功能强大。web.py 是公开的,无论用于什么用途都是没有限制的。 先让大家感受一下web.py 的简单而强大: 看看,上面就是一个基于web.py 的完整的...

小编辑
2010/03/21
63.2K
8
linux 学习笔记 (3) —— 使用python

1.安装python 2.6 ----------参考 http://www.cnblogs.com/end/archive/2012/10/24/2736841.html 安装好后,直接yum list python26,如果出现这个包,说明正常了。yum这个工具的等待时间很长...

TdadaT
2012/10/30
125
0
web.py 0.3 新手指南

开始 你知道 Python 同时你希望制作一个网站。 那么web.py正好提供了一种简单的方法。 如果你希望读完整个指南, 你需要安装Python, web.py, flup, psycopg2, 和Postgres (或者等价的数据库和...

justjavac
2013/01/24
307
0
使用Python编写免安装运行时、以Windows后台服务形式运行的WEB服务器

环境构建 安装python2.7 安装Setup Tools 在https://pypi.python.org/pypi/setuptools获取安装脚本的链接http://peak.telecommunity.com/dist/ez_setup.py,下载并运行 使用Setup Tools自动下......

mickelfeng
2013/06/14
2.1K
1

没有更多内容

加载失败,请刷新页面

加载更多

最简单的获取相机拍照的图片

  import android.content.Intent;import android.graphics.Bitmap;import android.os.Bundle;import android.os.Environment;import android.provider.MediaStore;import andr......

MrLins
37分钟前
4
0
说好不哭!数据可视化深度干货,前端开发下一个涨薪点在这里~

随着互联网在各行各业的影响不断深入,数据规模越来越大,各企业也越来越重视数据的价值。作为一家专业的数据智能公司,个推从消息推送服务起家,经过多年的持续耕耘,积累沉淀了海量数据,在...

个推
39分钟前
7
0
第三方支付-返回与回调注意事项

不管是支付宝,微信,还是其它第三方支付,第四方支付,支付机构服务商只要涉及到钱的交易都要进行如下校验,全部成功了才视为成功订单 1.http请求是否成功 2.校验商户号 3.校验订单号及状态...

Shingfi
41分钟前
4
0
简述Java内存分配和回收策略以及Minor GC 和 Major GC(Full GC)

内存分配: 1. 栈区:栈可分为Java虚拟机和本地方法栈 2. 堆区:堆被所有线程共享,在虚拟机启动时创建,是唯一的目的是存放对象实例,是gc的主要区域。通常可分为两个区块年轻代和年老代。更...

DustinChan
47分钟前
6
0
Excel插入批注:可在批注插入文字、形状、图片

1.批注一直显示:审阅选项卡-------->勾选显示批注选项: 2.插入批注快捷键:Shift+F2 组合键 3.在批注中插入图片:鼠标右键点击批注框的小圆点【重点不可以在批注文本框内点击】----->调出批...

东方墨天
今天
6
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部