Flask框架

此博客介绍了如何使用Python实现通过Flask应用接口,利用SQLite3或MySQL进行空间、组织和操作员的动态创建。通过json数据传递,生成独特的标识符并插入到数据库中,展示了数据库操作的基本流程和数据结构管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import json
import time

from flask import Flask,request

app=Flask(__name__)
import queue,datetime

# import pymysql
import random
from pathlib import Path
import os,sys
import sqlite3
mysqlhost='localhost'
mysql_user='root'
password='123456'
root_path=Path(os.path.abspath(__file__)).parent
project=str(Path(root_path).parent)
sys.path.append(project)
sys.path.append(root_path)
source="sqlite3"
# source="mysql"
wait_time=0.5
def db_source():
    time.sleep(wait_time)
    global sql_str

    if source=='sqlite3' :
        import sqlite3
        sql_str='?'
        con = sqlite3.connect("db.sqlite3")
        return con
    if source=='mysql' :
        import pymysql
        con = pymysql.connect(host=mysqlhost, user=mysql_user, password=password, db='test', charset='utf8')
        sql_str = '%s'
        return con
def add_space_mysql(data):
    #
    # con=sqlite3.connect(Path(os.path.abspath(__file__)).parent.parent/Path("db.sqlite3"))
    con=db_source()
    cur=con.cursor()
    sql_value=','.join([sql_str for i in range(len(data))])
    sql=f"insert into space(spaceid,level,spacename,parentid,code)values({sql_value})"
    # sql=f"insert into defspace(spaceid,level,spacename,parentid)value({spaceid},{level},{spacename},{parentid})"
    cur.execute(sql,data)
    con.commit()
    cur.close()
    con.close()
def add_organization_mysql(data):
    #
    # con=sqlite3.connect(Path(os.path.abspath(__file__)).parent.parent/Path("db.sqlite3"))
    con=db_source()
    cur=con.cursor()
    sql_value = ','.join([sql_str for i in range(len(data))])
    sql=f"insert into organization(spaceid,organizationid)values({sql_value})"
    # sql=f"insert into defspace(spaceid,level,spacename,parentid)value({spaceid},{level},{spacename},{parentid})"
    cur.execute(sql,data)
    con.commit()
    cur.close()
    con.close()
def add_operator_mysql(data):

    # con=sqlite3.connect(Path(os.path.abspath(__file__)).parent.parent/Path("db.sqlite3"))
    con=db_source()
    cur=con.cursor()
    sql_value = ','.join([sql_str for i in range(len(data))])
    sql=f"insert into operator(operatorid,organizationid)values({sql_value})"
    # sql=f"insert into defspace(spaceid,level,spacename,parentid)value({spaceid},{level},{spacename},{parentid})"
    cur.execute(sql,data)
    con.commit()
    cur.close()
    con.close()
a=queue.Queue()

def datatime_num():
    if a.qsize()<5:
        for i in range(11,99):
            a.put_nowait(i)
    b=datetime.datetime.now().strftime("%Y%m%d%H%M%S%f")

    return b+str(a.get())
def num_to_list(num,num_list):
    return num_list if num//13<1 else num_to_list(num//13,num_list+[num%13])
def get_zimu():
    a=num_to_list(int(datatime_num()),[])
    c=[chr(int(i)+random.choice([97,110,65,78])) for i in a]
    return ''.join(c)

@app.route('/service/space/0.1.0/add',methods=['POST'])
def addspace():
    body=json.loads(request.get_data())
    code=body['code']
    level=body['level']
    spacename=body['spacename']
    parentid=body["spacename"]
    spaceid=get_zimu()

    add_space_mysql((spaceid,level,spacename,parentid,code))

    return json.dumps({"recode":0,"result":[{"spaceid":spaceid}]})
@app.route('/service/organization/0.1.0/add',methods=['POST'])
def addorganization():
    body=json.loads(request.get_data())
    spaceid=body['spaceid']

    organizationid=get_zimu()

    add_organization_mysql((spaceid,organizationid))

    return json.dumps({"recode":0,"result":[{"organizationid":organizationid}]})
@app.route('/service/operator/0.1.0/add',methods=['POST'])
def addoperator():
    body=json.loads(request.get_data())
    organizationid=body['organizationid']

    operatorid=get_zimu()
    add_operator_mysql((operatorid,organizationid))
    return json.dumps({"recode":0,"result":[{"operatorid":operatorid}]})

if __name__=='__main__':
    app.run(host='::',port=8000,debug=False)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值