浏览代码

allow CORS request

ming 3 年之前
父节点
当前提交
7263b3a255
共有 1 个文件被更改,包括 59 次插入7 次删除
  1. 59 7
      main.py

+ 59 - 7
main.py

@@ -2,20 +2,36 @@
 from enum import Enum
 from typing import Optional
 from pydantic import BaseModel
-from fastapi import FastAPI, Query
+from fastapi import FastAPI, Query, UploadFile, File
 import dataset,json
+from fastapi import FastAPI
+from fastapi.middleware.cors import CORSMiddleware
+app = FastAPI()
+origins = [
+    "http://172.105.205.52",
+    "http://172.105.205.52:8000",
+]
 
+app.add_middleware(
+    CORSMiddleware,
+    allow_origins=origins,
+    allow_credentials=True,
+    allow_methods=["*"],
+    allow_headers=["*"],
+)
 
-app = FastAPI()
-db = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/cmm_test?charset=utf8mb4')
 
+db = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/cmm_test?charset=utf8mb4')
 
+##########TAG CRUD################TAG CRUD##################TAG CRUD###########TAG CRUD##################
 class Tag(BaseModel):
     id: int
     name: str
-	
+
 @app.get("/tags")
 async def get_tags():
+    course_table = db['course_table']
+    print(course_table.columns)
     statement = 'SELECT id,name FROM tag_table'
     tags = []
     for row in db.query(statement):
@@ -46,18 +62,28 @@ async def update_tags(tag_id,tag:Tag):
     tag.id=tag_id
     return tag
     
-
-
 @app.get("/tags/{tag_id}")
 async def get_tags(tag_id):
     statement = 'SELECT id,name FROM tag_table where id = '+tag_id
     for row in db.query(statement):
         result = {'id':row['id'],'name':row['name']}
     return result
-
+	
+	
+	
+###########COURSE CRUD###########COURSE CRUD###########COURSE CRUD###########COURSE CRUD###########
+class Course(BaseModel):
+    id: int
+    name: str
+    cover_src: str   #image src url
+    content_des: str #course description
+    watch_times: int
+    price: int
+    period: int  #times a week
 
 @app.get("/courses")
 async def get_courses(tag_string):
+    
     courses = []
     statement = 'SELECT course_id from course_tag where tag_id IN'+tag_string
 
@@ -72,3 +98,29 @@ async def get_courses(tag_string):
         courses.append({'id':row['id'],'name':row['name']})
     return courses
 
+@app.post("/courses")
+async def create_courses(Tag_IDs: list,course:Course):
+    course_table = db['course_table']
+    course_tag_table = db['course_tag']
+    pkey = course_table.insert({'name':course.name,'content_des':course.content_des,
+    'price':course.price,'period':course.period})
+    sqls = 'INSERT INTO course_tag (course_id, tag_id)VALUES'
+    for tid in Tag_IDs:
+        sqls = sqls + '('+str(pkey)+','+str(tid)+'),'
+    sqls = sqls[:-1]
+    db.query(sqls)
+    return course
+        
+@app.post("/course_cover_change/{course_id}")
+async def course_cover_change(course_id, uploaded_file: UploadFile = File(...)):
+    file_location = f"course_cover_img/{course_id}"
+    with open(file_location, "wb+") as file_object:
+        file_object.write(uploaded_file.file.read())
+    sqls = 'UPDATE course_table\
+    SET cover_img="'+file_location+'"\
+    WHERE id='+course_id+';'
+    db.query(sqls)
+    return '{"file_loc":'+file_location+'}'
+    
+    
+