main.py 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. from enum import Enum
  2. import time
  3. from datetime import datetime
  4. from typing import Optional
  5. from pydantic import BaseModel
  6. from fastapi import FastAPI, Query, UploadFile, File
  7. import dataset,json
  8. from fastapi import FastAPI
  9. from fastapi.middleware.cors import CORSMiddleware
  10. app = FastAPI()
  11. origins = [
  12. "https://hhh.com.tw"
  13. "http://172.105.205.52",
  14. "http://172.105.205.52:800020",
  15. ]
  16. app.add_middleware(
  17. CORSMiddleware,
  18. allow_origins=origins,
  19. allow_credentials=True,
  20. allow_methods=["*"],
  21. allow_headers=["*"],
  22. )
  23. db = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/hhh?charset=utf8mb4')
  24. class deco_request(BaseModel):
  25. id: int
  26. name: str
  27. email: str
  28. phone: str
  29. class deco_request_detail(BaseModel):
  30. id: int
  31. name: str
  32. email: str
  33. phone: str
  34. #detail
  35. loc: str
  36. h_class: str
  37. type: str
  38. budget: str
  39. size: float
  40. bed_num: int
  41. liv_num: int
  42. bath_num: int
  43. style: str
  44. prefer_date: str
  45. time_stamp: str
  46. gender: str
  47. @app.get("/deco_request")
  48. async def get_req():
  49. request_table = db['deco_request']
  50. statement = 'SELECT * FROM deco_request'
  51. reqs = []
  52. for req in db.query(statement):
  53. reqs.append({'name':req['name'],'email':req['email'],'phone':req['phone'],'loc':req['loc']
  54. ,'h_class':req['h_class'],'type':req['type'],'budget':req['budget'],'size':req['size'],'bed_num':req['bed_num']
  55. ,'liv_num':req['liv_num'],'bath_num':req['bath_num'],'style':req['style'],'prefer_date':req['prefer_date'],'gender':req.gender})
  56. return reqs
  57. @app.post("/deco_request")
  58. async def create_req(req:deco_request):
  59. request_table = db['deco_request']
  60. time_stamp = datetime.fromtimestamp(time.time())
  61. time_stamp = time_stamp.strftime("%Y-%m-%d %H:%M:%S")
  62. pk = request_table.insert({'name':req.name,'email':req.email,'phone':req.phone,'time_stamp':time_stamp})
  63. req.id = pk
  64. return req
  65. @app.post("/deco_request_detail")
  66. async def create_req_detail(req:deco_request_detail):
  67. request_table = db['deco_request']
  68. time_stamp = datetime.fromtimestamp(time.time())
  69. time_stamp = time_stamp.strftime("%Y-%m-%d %H:%M:%S")
  70. req.time_stamp = time_stamp
  71. pk = request_table.insert({'name':req.name,'email':req.email,'phone':req.phone,'loc':req.loc
  72. ,'h_class':req.h_class,'type':req.type,'budget':req.budget,'size':req.size,'bed_num':req.bed_num
  73. ,'liv_num':req.liv_num,'bath_num':req.bath_num,'style':req.style,'prefer_date':req.prefer_date,'time_stamp':req.time_stamp,'gender':req.gender})
  74. req.id = pk
  75. return req