1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- from enum import Enum
- from typing import Optional
- from pydantic import BaseModel
- from fastapi import FastAPI, Query
- import dataset,json
- app = FastAPI()
- db = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/cmm_test?charset=utf8mb4')
- class Tag(BaseModel):
- id: int
- name: str
-
- @app.get("/tags")
- async def get_tags():
- statement = 'SELECT id,name FROM tag_table'
- tags = []
- for row in db.query(statement):
- tags.append({'id':row['id'],'name':row['name']})
- return tags
- @app.post("/tags")
- async def create_tags(tag:Tag):
- tag_table = db['tag_table']
- pk = tag_table.insert({'name':tag.name})
- tag.id = pk
- return tag
-
- @app.delete("/tags/{tag_id}")
- async def delete_tags(tag_id:int):
- sqls = 'DELETE FROM tag_table WHERE id = '+str(tag_id)
- db.query(sqls)
- sqls = 'DELETE FROM course_tag WHERE tag_id = '+str(tag_id)
- db.query(sqls)
- return result
-
- @app.put("/tags/{tag_id}")
- async def update_tags(tag_id,tag:Tag):
- sqls = 'UPDATE tag_table\
- SET name="'+tag.name+'"\
- WHERE id='+tag_id+';'
- db.query(sqls)
- 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
- @app.get("/courses")
- async def get_courses(tag_string):
- courses = []
- statement = 'SELECT course_id from course_tag where tag_id IN'+tag_string
- course_id_string = '('
- for row in db.query(statement):
- course_id_string = course_id_string + str(row['course_id'])+","
- course_id_string=course_id_string[:-1]
- course_id_string = course_id_string+')'
- statement = 'SELECT id,name from course_table where id IN'+course_id_string
- for row in db.query(statement):
- courses.append({'id':row['id'],'name':row['name']})
- return courses
|