首页 > 编程语言 >Python搭建数据查询接口服务

Python搭建数据查询接口服务

时间:2023-10-11 17:44:21浏览次数:32  
标签:__ Python res list 接口 item path scent 搭建

启动一个服务,使用FastAPI框架,增加跨域允许

 1 # -*- coding: UTF-8 -*-
 2 """
 3 @author: cc
 4 @file: service.py
 5 @time: 2021/05/24
 6 """
 7 
 8 import sqlite3
 9 from fastapi import FastAPI
10 import uvicorn
11 import os
12 from fastapi.middleware.cors import CORSMiddleware
13 
14 service_path = os.path.normpath(os.path.dirname(os.path.abspath(__file__)))
15 db = os.path.join(service_path, 'perfume.db')
16 
17 conn = sqlite3.connect(db)
18 curs = conn.cursor()
19 
20 app = FastAPI()
21 
22 origins = [
23     "*",
24 ]
25 
26 app.add_middleware(
27     CORSMiddleware,
28     allow_origins=origins,
29     allow_credentials=True,
30     allow_methods=["*"],
31     allow_headers=["*"],
32 )
33 
34 @app.get('/')
35 async def perfume(scent: str):
36     data = []
37     scents = scent.split(",")
38     if scent:
39         if len(scents) == 1:
40             sql = "select * from perfume_scent where scent='{}'".format(scent)
41             res = curs.execute(sql)
42             res_list = list(res)
43             lens = len(res_list)
44             if lens == 0:
45                 sql = "select * from perfume_scent where scents like '% {} %'".format(scent)
46                 res = curs.execute(sql)
47                 res_list = list(res)
48         else:
49             sign_str = ''
50             for scent in scents:
51                 sign_str += "(case when instr(scents, ' {} ') > 0 then 1 else 0 end) + ".format(scent)
52             sign_str = sign_str[:-3]
53             sql = "select *, {} as num from perfume_list order by num desc limit 5".format(sign_str)
54 
55             res = curs.execute(sql)
56             res_list = list(res)
57 
58         for item in res_list:
59             li = {
60                 'name': item[1].replace("{} ".format(item[3]), ""),
61                 'en_name': item[2],
62                 'brand': item[3],
63                 'image': item[6],
64                 'scents': item[7],
65             }
66             data.append(li)
67 
68     return {'scent': data}
69 
70 if __name__ == '__main__':
71     uvicorn.run(app=app, host='0.0.0.0', port=8000)

 

标签:__,Python,res,list,接口,item,path,scent,搭建
From: https://www.cnblogs.com/kingkie/p/17757792.html

相关文章

  • python chromedriver下载与安装方法
    当需要进行自动化测试或爬取网页数据时,Chrome浏览器的驱动程序(ChromeDriver)是一个关键组件。它允许控制和与Chrome浏览器进行交互。在本文中,将为介绍如何下载和安装ChromeDriver。什么是ChromeDriverChromeDriver是一个用于自动化控制和与GoogleChrome浏览器进行交互的驱动程序。......
  • python 获取word页数
    没想到获取个word页数这么简单的需求,实现起来还挺难。1.根据网上说法:word文档中不保存总页数,只是在渲染时才根据文字和表格等去摆放到一页上,摆放不下时才展现下一页。所以从docx中取不到总页数2.因此,仅用docx库不行,还需要用win32com。而win32com实际是:pipinstallpypiwin32 ......
  • Python selenium chrome版本查询和对应驱动下载
    elenium爬虫需要安装Chrome驱动chrome版本查询和对应驱动下载,超详细方法/步骤1查看谷歌的版本,第一步在地址栏输入图中网址第二步查看版本号2复制版本号,只需复制版本号最后一位小数点之前的数字。(例:版本号:111.0.5563.65,复制111.0.5563即可)将复制的版本号......
  • 终于实现python的词云啦~~~
    1、准备好一个txt文件(我是直接在python项目里面创建了一个txt文件)2、编写代码分词,并连接到Navicat的mysql数据库,将分词之后的数据导入进去:importjiebaimportnumpyasnpimportpymysqltxt=open("hlm.txt","r",encoding='utf-8').read()words=jieba.lcut(txt)#进行......
  • 搭建FTP服务器步骤
    CentOSLinux7.6部署FTP教程原创 HelloDBA HelloDBA 2023-09-2420:55 发表于江苏收录于合集#Linux2个 今天给大家介绍下在CentOS7.6操作系统上部署FTP的过程,有需要的朋友参考。 墨天轮:https://www.modb.pro/u/15854公众号:HelloDBA  一、前言FT......
  • 【20230613】【Python基础教程】第一章 基础知识
    第一章基础知识I1.4数字与表达python3.x会进行一些浮点数的计算点击查看代码print(1/2)#浮点计算print(1//2)#整除实现结果只保留整数部分print(1%2)#取余保留余数print(2**3)#幂函数结果如下:点击查看代码0.50181.4.1长整型数python3.x......
  • 方案:餐厅饭店AI智能视频监控可视化监管系统搭建方案
    随着大众对食品卫生的要求逐渐提升,明厨亮灶已成为很多人选择就餐点的一大要求,明厨亮灶的产生对保障大众食安起到了十分显著的作用,后厨作为食品安全重要场所,需要“亮”出来,前厅也同时需要监控系统的保护,那么智能分析算法可以怎样应用在饭店和餐馆日常监控之中呢?具体方案1、视频监......
  • 方案:餐厅饭店AI智能视频监控可视化搭建方案
    随着大众对食品卫生的要求逐渐提升,明厨亮灶已成为很多人选择就餐点的一大要求,明厨亮灶的产生对保障大众食安起到了十分显著的作用,后厨作为食品安全重要场所,需要“亮”出来,前厅也同时需要监控系统的保护,那么智能分析算法可以怎样应用在饭店和餐馆日常监控之中呢?具体方案1、视频监控......
  • python xmind生成
    importxmindclassAddXmind:def__init__(self,topic_name:str,path:str):self.topic_name=topic_name#主题名称self.path=path#绝对路径defadd(self,child:list):workbook=xmind.load(self.path)first_sh......
  • python32days
    异常元类—————————————————————————————————————————————异常就是错误发生的信号,我们需要对该信号做处理,如果不处理,往后的代码就不能执行了异常的分类 逻辑错误#是允许出现的,但是呢,编程的时候尽量避免逻辑错误的发生语法错......