12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- from typing import Optional
- from datetime import datetime
- from fastapi import FastAPI
- from fastapi.middleware.cors import CORSMiddleware
- from pydantic import BaseModel
- from db import DB
- app = FastAPI(title='梅州插件日志记录', description='梅州插件日志记录')
- app.add_middleware(
- CORSMiddleware,
- # 允许跨域的源列表
- allow_origins=["*"],
- # 跨域请求是否支持cookie
- allow_credentials=False,
- # 允许跨域的请求方法
- allow_methods=["*"],
- # 允许跨域请求的请求头列表
- allow_headers=["*"],
- # 可以被浏览器访问的响应头
- expose_headers=["*"],
- # 设定浏览器缓存CORS响应的最长时间
- max_age=1000
- )
- class Recorder(BaseModel):
- record_Time: datetime
- current_Url: str
- full_Url: str
- sim_Url: Optional[str] = None
- user_Id: str
- device_Id: str
- request_Method: str
- event_Type: str
- form_Data: Optional[str] = None
- json_Data: Optional[str] = None
- value_Data: Optional[str] = None
- status_Code: Optional[str] = None
- target_Url: Optional[str] = None
- iframe_Url: Optional[str] = None
- button_Text: Optional[str] = None
- @app.post(path='/record', summary='日志记录', description='接收插件日志记录')
- def record(recorder: Recorder):
- recorder_dict = recorder.dict()
- # print(recorder_dict)
- record_time, current_url, full_url, sim_url, user_id, device_id, request_nethod,event_type, form_data, json_data, value_data, status_code, target_url, iframe_url, button_text = recorder_dict['record_Time'], recorder_dict['current_Url'], recorder_dict['full_Url'], recorder_dict['sim_Url'], recorder_dict['user_Id'], recorder_dict['device_Id'], recorder_dict['request_Method'], recorder_dict['event_Type'], recorder_dict['form_Data'], recorder_dict['json_Data'], recorder_dict['value_Data'], recorder_dict['status_Code'], recorder_dict['target_Url'], recorder_dict['iframe_Url'], recorder_dict['button_Text']
- db, cursor = DB().get_cursor()
- db.ping(reconnect=True)
- try:
- sql = """INSERT INTO recoder(
- record_time, current_url, full_url, sim_url, user_id, device_id, request_method,event_type, form_data, json_data, value_data, status_code, target_url, iframe_url, button_text
- ) VALUES (
- '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s'
- )""" % (
- record_time, current_url, full_url, sim_url, user_id, device_id, request_nethod,event_type, form_data, json_data, value_data, status_code, target_url, iframe_url, button_text
- )
- # print(sql)
- cursor.execute(sql)
- db.commit()
- except Exception as e:
- print('--->', e)
- db.rollback()
- return {"status": "failed"}
- cursor.close()
- db.close()
- return {"status": "success"}
- # if __name__ == '__main__':
- # # uvicorn main:app --host 0.0.0.0 --port 8000 --workers 20 --log-level warning
- # uvicorn.run(app, host='0.0.0.0', port=7900, workers=1)
- # # db, cursor = DB().get_cursor()
|