python之flask學習筆記(二):網頁請求增刪改查

不多說,直接上代碼,一看就懂,注意幾點:

1. app = Flask(__name__)只是一個定義,無需關注。

2. 每一個 @app()裏都是一個前端URL加請求參數,而在下面就會有一個函數根據這個請求去做相應的操作。

3. app.run()就是說這個接口會跑起來,一直等待前端頁面的請求。

from flask import Flask, jsonify, request
import pymysql
import csv
"""



"""
app = Flask(__name__)

# def print():
#     pass

def getData():  # 獲取數據庫的數據
    """
    huoqu ...

    :return:
    """
    conn = pymysql.connect(host="192.168.xxx.xxx", user="root", password="123456", db="test", port=3306)
    cur = conn.cursor()
    sql = "select * from testMysql"
    lis = []
    try:
        cur.execute(sql)
        results = cur.fetchall()
        for result in results:
            dic = {'id': result[0], 'name': result[1], 'choose': result[2], 'type': result[3], 'descri': result[4]}
            lis.append(dic)
    except:
        print("error") # 儘量少用print  用log
        conn.rollback()
    conn.close()
    return lis


def insertData(dic):  # 往數據庫裏面添加數據
    """

    :param dic:
    :return:
    """
    conn = pymysql.connect(host="192.168.xxx.xxx", user="root", password="123456", db="test", port=3306)
    cur = conn.cursor()
    # print(dic['id'],dic['name'],dic['choose'],dic['type'],dic['descri'])
    # 由於是設置了主鍵自增,所以不用再添加id字段,
    sql = "insert into testMysql(`name`,`choose`,`type`,`descri`) values ('{}','{}','{}','{}')". \
        format(
               dic['name'],
               dic['choose'],
               dic['type'],
               dic['descri']
               )
    print(sql)
    try:
        cur.execute(sql)
        conn.commit()
    except Exception as e:
        print(e)
        conn.rollback()
    conn.close()
    return getData()

def delDataFromLocal(dic):
    conn = pymysql.connect(host="192.168.xxx.xxx",user="root",password="123456",db="test",port=3306)
    cur = conn.cursor()
    sql = "delete from testMysql where `name` = '{}' and `id` = '{}'".format(dic['name'],dic['id'])
    try:
        cur.execute(sql)
        conn.commit()
    except Exception as e:
        print(e)
    conn.close()
    return getData()

def upData(dic):
    conn = pymysql.connect(host="192.168.xxx.xxx",user="root",password="123456",db="test",port=3306)
    cur = conn.cursor()
    sql = "update testMysql set `choose` = '{}' where `id` = '{}'".format(dic['choose'],dic['id'])
    try:
        cur.execute(sql)
        conn.commit()
    except Exception as e:
        print(e)
    return getData()


@app.route('/resource-view/api/v1.0/get', methods=['get'])#獲取查詢數據
def return_data():  # 不要使用駝峯命名法  使用下劃線  不要用關鍵字
    lis = getData()
    result = {
        "data": lis,
        "code": 3301
    }
    return jsonify(result)


@app.route('/resource-view/api/v1.0/addToData', methods=['post'])#增加數據
def addToData():
    getFormData = request.form
    print(getFormData)
    lis = insertData(getFormData)
    result = {
        "data": lis,
        "code": 3301
    }
    return jsonify(result)

@app.route('/resource-view/api/v1.0/delData',methods=['post'])#刪除數據
def delData():
    getFormData = request.form
    lis = delDataFromLocal(getFormData)
    result = {
        'data':lis,
        'code':3301
    }
    return jsonify(result)

@app.route('/resource-view/api/v1.0/updateData',methods=['post'])#修改數據
def updateData():
    getFormData = request.form
    lis = upData(getFormData)
    result = {
        'data':lis,
        'code':3301
    }
    return jsonify(result)

@app.route('/resource-view/api/v1.0/export-vm-excel',methods=['get'])#導出Excel表
def exportExcel():
    lis = getData()
    lis1 = []
    lis1.append(list(lis[0]))
    for dic in lis:
        lis1.append(list(dic.values()))
    with open('testData.csv', 'w', newline='') as csv_file:
        writer = csv.writer(csv_file)
        writer.writerows(lis1)
    result = {
        'data':lis,
        'code':3301
    }
    return jsonify(result)


if __name__ == '__main__':
    app.run(host='192.168.xxx.xxx', port=5000)

 

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章