python搭建后台操作mysql数据库

本文介绍了如何使用Python作为本地服务器,通过Flask框架与前端进行POST请求交互,实现MySQL数据库的用户登录验证、创建表、连接数据库以及执行增、删、改、查操作。详细阐述了各个操作的关键代码,如`DELETE FROM`, `UPDATE SET`, `SELECT`和`INSERT INTO`等SQL语句,并展示了前端如何通过Ajax或axios进行数据接收发送。
摘要由CSDN通过智能技术生成

1.python作为本地服务器使用post连接前端

1.1 引入模块

// 引入模块
from flask import Flask, jsonify, request  # 引入核心处理模块
from flask_sqlalchemy import SQLAlchemy
from flask_cors import CORS
# noinspection PyUnresolvedReferences
import json
import zhenzismsclient as smsclient
import base64
from dataBase.mysql_manage import *
from post.matlab import *
import random

# 通过当前文件构建一个app应用,当前文件就是web_app程序的入口
app = Flask(__name__)
CORS(app)  # 解决跨域问题
app.config

1.2 登录验证

(1)create(“user”)//创建用户信息列表(这个是在另外一个地方写的函数,会在1.3展示)
(2)a = select(“user”, “*”, “username =”"+req[‘username’]+""")//mysql的select查找函数,用来在user中查找用户名为req[‘username’]的信息(select在3.3中定义)
(3)return jsonify({‘massage’: 0})//以json形式返回到前端

@app.route('/login', methods=['POST'])  # 登录
def login():
    print("进入登陆查询")
    req = request.get_json()//从前端接收到的数据
    print(req)
    create("user")//创建用户信息列表(这个是在另外一个地方写的函数,会在1.3展示)
    print("返回主函数:创建成功")
    a = select("user", "*", "username =\""+req['username']+"\"")//mysql的select查找函数,用来在user中查找用户名为req['username']的信息(select在3.3中定义)
    print("返回主函数:"+str(a)+","+str(len(a)))
    if len(a) == 0:     # 查询不到(未注册)
        return jsonify({'massage': 0})//以json形式返回到前端
    elif a[0][1] == req["password"]:   # 密码正确
        return jsonify({'massage': 1})
    else:               # 密码错误
        return jsonify({'massage': 2})

1.3 mysql创建user表

前面1.2中调用create函数即可在mysql中创建用户表-tablename为参数表名字

def create(tablename):      # 创建用户表
    print('创建表tablename:'+tablename)
    sql = """
    CREATE TABLE IF NOT EXISTS %s(
    username    VARCHAR(255)     NOT NULL      PRIMARY KEY,
    password    VARCHAR(255)     NOT NULL
    )""" %(tablename)
    cursor.execute(sql)
    print('创建结束')

2.python连接mysql数据库

host为ip地址、password为创建数据库时设立的密码,database为创建的数据库的名字

import pymysql
db = pymysql.connect(host="127.0.0.1",user= "root", password="123456",database= "user")       # 连接数据库
cursor = db.cursor()

3.python对mysql数据库进行增删改除

3.1 删除

table_name为删除的元素所在表格的名字;where_condition为删除的元素的位置
删除的关键语句:"""DELETE FROM %s WHERE %s""" %

def delete_opera(table_name, where_condition):   # 删除剧本/用户
    print('开始删除:'+table_name+','+where_condition)
    sql = """DELETE FROM %s WHERE %s""" %(table_name, where_condition)
    print(sql)
    try:
        cursor.execute(sql)
        db.commit()
        a = 1
    except:
        db.rollback()
        a = 0
    return a

下图具体用到了删除操作:

 if (a == 1):  # 删除
        b = req["column"]
        c = "formname =" + "\"" + b["formname"] + "\""
        d = delete_opera("operas", c)
        if d == 1:
            e = insert_opera("record", record)
            return jsonify({'message': "删除成功!"})
        else:
            return jsonify({'message': "删除失败!"})

3.2 更新

table_name为删除的元素所在表格的名字;where_condition为更新的元素的位置,updateData为更新的数据。
更新的关键语句"""UPDATE %s SET %s WHERE %s""" %

def update_opera(table_name, where_condition, updateData):   # 更新剧本/用户
    print('开始更新:' + table_name + ',' + where_condition + ',' + str(updateData))
    upd = ""
    for i in updateData:
        upd = upd + i + ","
    upd = upd[:-1]
    sql = """UPDATE %s SET %s WHERE %s""" %(table_name, upd, where_condition)
    print(sql)
    cursor.execute(sql)
    db.commit()
    a = 3
    print('a',3)
    return 3

下图为具体函数使用过程:

    elif (a == 2):  # 更新
        updateData = []
        updateData.append("formname = " + "\"" + req["newName"] + "\"")
        localtime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
        updateData.append("filetime = " + "\"" + localtime + "\"")  # 确定更新的数据
        c = select("operas", "*", "formname = " + "\"" + req["newName"] + "\"")
        if len(c) != 0:  # 重名,返回错误
            return jsonify({'message': 2})
        else:  # 未重名,更新数据
            b = update_opera("operas", "formname = " + "\"" + req["oldName"] + "\"", updateData)
            if b == 1:
                c = insert_opera("record", record)
                return jsonify({'message': 1})  # 更新成功
            else:
                return jsonify({'message': 0})  # 更新失败

3.3 查询

查询的关键语句"""select %s from %s where %s""" %

def select(table_name,list_view,where_condition):       # 开始查询
    print('开始查询:'+table_name+','+str(list_view)+','+where_condition)
    if list_view != '*':
        list_view = str(list_view[0])+''.join([','+str(list_view[i]) for i in range(1, len(list_view))])
    sql = """select %s from %s where %s""" % (list_view, table_name, where_condition)\
        if where_condition != "None" else \
        """select %s from %s""" %(list_view, table_name)
    print(sql)
    cursor.execute(sql)
    a = cursor.fetchall()   # 返回元组
    print("查询结束")
    print('a',a)
    return a

3.4 插入

插入的关键语句sql = 'insert into {table}({keys}) values ({values})'.format
table_name为要插入的表格的名字,req为插入的内容

def insert_opera(table_name, req):     #插入新剧本/记录
    print('req',req)
    print('reqtype',type(req))
    print('开始插入新剧本:' + table_name + ',' + str(req))
    keys = ', '.join(req.keys())
    values = ', '.join(['%s'] * len(req))
    print(keys)
    print(tuple(req.values()))
    sql = 'insert into {table}({keys}) values ({values})'.format(table=table_name, keys=keys, values=values)
    try:
        cursor.execute(sql, tuple(req.values()))
        db.commit()
        a = 1
    except:
        db.rollback()
        a = 0
    print("插入"+table_name+"结束")
    return a

插入的具体使用:

a = insert_opera("record", record)

4.总结

mysql的删除、更新、查询、插入操作。

删除更新查询插入
"""DELETE FROM %s WHERE %s""" %"""UPDATE %s SET %s WHERE %s""" %"""select %s from %s where %s""" %sql = 'insert into {table}({keys}) values ({values})'.format

5.前端接收发送数据

ajax:ajax:post接收发送数据
axios:axios:post接收发送数据

码字不易~, 各位看官要是看爽了,可不可以三连走一波,点赞皆有好运!,不点赞也有哈哈哈~~~

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

让子弹飞一会儿=>

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值