利用前段知识做出项目

目录

1.项目目标

2.实现过程

(1)使用web.py

(2)连接MySQL数据库

打开数据库连接

关闭数据库方法

增删改 sql 语句拼装

增删改方法

查询方法

(3)调用增删改查方法,返回数据

增,删,改

查询

3.试验方法

1.项目目标

利用之前的知识,做出一个在浏览器中输入网址和 id (或者姓名,年龄等),通过Python实现将MySQL数据库里符合输入的id (或者姓名,年龄等)的数据,进行增删改查等操作,并将结果返回到浏览器。

2.实现过程

(1)使用web.py

既然要在浏览器上运行,那当然要用到web.py来帮我们。

首先把必要的代码写好

import web

urls = (
    'insert', 'insert',
    'select', 'select',
    'delete', 'delete',
    'update', 'update',
    'select/name', 'select_name',
    'select/age', 'select_age',
)

if __name__ == '__main__':
    app = web.application(urls, globals())
    app.run()

 这里我的 urls 有六个,分别是增加,查询,删除,改,按照姓名/年龄查询。

(2)连接MySQL数据库

连接MySQL数据库,这里我用到的是 pymysql 库。

打开数据库连接
import pymysql
def connect():
    # 打开数据库链接
    db = pymysql.connect(host="127.0.0.1",
                         user="root",
                         password="********************",
                         database="scores")
    return db
关闭数据库方法
def close(db):
    db.close()

这两个方法写完后,就要写增删改查的方法了,增删改的代码几乎一致,就是 sql 语句不同,就不一个个放出来了。

增删改 sql 语句拼装
#增
sql = "insert into student (`name`,`age`,`gender`) values " +\
 "(" + "'" + name + "'," + age + ",'" + gender + "'" + ")"
#删
sql = "delete from student where id = " + id + ";"
#改
sql = "update student set `name` = " + "'" + name + "'" \
+ "where id = " + id + ";"

增删改方法

接着就是把增删改的方法写出来,增和改写的方法和删一样,只是 sql 语句和传进去的参数不同而已,就不展示了。

def delete(id):
    db = connect()
    cursor = db.cursor()
    sql = "delete from student where id = " + id + ";"
    try:
        cursor.execute(sql)
        db.commit()
    except:
        # 如果执行错误就回滚到执行sql语句前的状态
        db.rollback()
    close(db)

查询方法

查询方法与增删改的方法不同,需要将数据处理后返回到浏览器上,sql 语句的拼装也不同。 

def select(id):
    result = []
    db = connect()
    cursor = db.cursor()
    sql = "select name, age, gender from student where id = " + id + ";"
    try:
        cursor.execute(sql)
        data = cursor.fetchall()
        # 输出查询结果
        for row in data:
            result.append({"name": row[0], "age": row[1], "gender": row[2]})
    except:
        pass

    close(db)
    return result

上面的 sql 语句是用 id 进行查询,还有用名字和年龄查询的 sql 语句如下

#年龄
sql = "select name, age, gender from student where age = " + age + ";"
#姓名
sql = "select name, age, gender from student where name = " + name + ";"

(3)调用增删改查方法,返回数据

增,删,改

这里我们先定义一个类,然后定义一个GET方法

class delete:
    def GET(self):

然后利用 web.input() 方法获取 id 等数据,再调用增删改等方法

class delete:
    def GET(self):
        id = web.input().id
        delete(id)
        return {"ret": "ok"}

上面调用的是删除的方法,增和改只要换一个方法就行。

查询

与增删改不同,查是要返回数据的,所以最好用一下 json 库。

在最开始的地方引入 json 库

import json

然后第一步和增删改一致

class select:
    def GET(self):
        id = web.input().id

接着把调用方法的数据放入变量内,用 json.dumps() 方法格式化后返回到浏览器中

class weather_select:
    def GET(self):
        id = web.input().id
        result = select(id)
        return json.dumps(result)

上面是用 id 查询,用姓名或年龄查询只需将

id = web.input().id

换成

name = web.input().name
#或
age = web.input().age

再将调用方法传入的参数改为 name 或 age 就行了。

3.试验方法

在运行程序后在浏览器内输入对应网址和数据,回车后就可以看到结果。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值