-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain - Bae.py
More file actions
80 lines (49 loc) · 1.69 KB
/
main - Bae.py
File metadata and controls
80 lines (49 loc) · 1.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
from fastapi import FastAPI, HTTPException, status, Depends, Request
from fastapi.templating import Jinja2Templates
from sqlmodel import (
Field, SQLModel,
Session, create_engine, select
)
from dataclasses import dataclass, asdict
from enum import Enum
from app.services.post_service import *
db_url = 'sqlite:///blog.db'
db_engine = create_engine(db_url,
connect_args={"check_same_thread": False})
def get_db_session():
with Session(db_engine) as session:
yield session
def create_db():
SQLModel.metadata.create_all(db_engine)
templates = Jinja2Templates(directory="front")
app = FastAPI()
@app.on_event("startup")
def on_startup():
create_db()
login_session = {}
@app.get("/home")
def open_home_page(request: Request):
return templates.TemplateResponse("home.html", {"request":request})
@app.get("/posts")
def get_posts(page: int=1, limit: int=2,
db=Depends(get_db_session),
postService: PostService = Depends()) -> PostsResp:
resp = postService.get_posts(db, page, limit)
return resp
'''
# 게시글 목록 API (JSON 응답)
@app.get("/posts", response_model=List[Posts])
def get_posts():
with Session(engine) as session:
posts = session.exec(select(Posts)).all()
return posts
'''
@app.get("/post")
def open_write_page(request: Request):
return templates.TemplateResponse("post.html", {"request":request})
@app.post("/post")
def create_post(cPost: PostReq, db = Depends(get_db_session),
postService: PostService = Depends()):
resp = postService.create_post(db, cPost)
print(resp)
return resp