diff --git a/back/main.py b/back/main.py index dea9027..6d2df05 100644 --- a/back/main.py +++ b/back/main.py @@ -12,6 +12,7 @@ from starlette.staticfiles import StaticFiles import requests from uuid import uuid4 +import random import ast import pathlib @@ -33,11 +34,22 @@ if not os.path.exists("./uploads"): os.mkdir("./uploads") app.mount("/uploads", StaticFiles(directory = "./uploads")) -# # Записываем стихи в базу данных, если их еще нет (запускать только если стихов в базе нет). +# Записываем стихи в базу данных, если их еще нет (запускать только если стихов в базе нет). # add_poems_to_db(database) -@app.get("/api/announcements", response_model=List[schemas.Announcement]) #адрес объявлений -def annoncements_list(params_to_sort: schemas.SortAnnouncements): +#Вова тестирует получение поэм, Димоны, помогите пж +@app.post("/api/poems") +async def poems_to_front(): + kolvo_stixov = 109 # пока количество стихотворений = 101 + rand_id = random.randint(1, kolvo_stixov) # номер стихотворения + poem_json = dict() + poem = database.query(models.Poems).filter(models.Poems.id == rand_id) + poem_json = {"title": poem.title, "text": poem.text, "author":poem.author} + return poem_json + + +@app.get("/api/announcements")#адрес объявлений +def annoncements_list(owner_id: int = None, metro: str = None, category: str = None, booked_by: int = 0): # Считываем данные из Body и отображаем их на странице. # В последствии будем вставлять данные в html-форму @@ -46,27 +58,6 @@ def annoncements_list(params_to_sort: schemas.SortAnnouncements): # Фильтруем по другим параметрам и делаем пересечение с not_expired result = not_expired.intersect(get_query_results(params_to_sort)) - - # a = database.query(models.Announcement) - # b = database.query(models.Announcement) - # c = database.query(models.Announcement) - # d = database.query(models.Announcement) - # e = database.query(models.Announcement) - - # if owner_id != None: - # b = a.filter(models.Announcement.owner_id == owner_id) - - # if metro != None: - # c = a.filter(models.Announcement.metro == metro) - - # if category != None: - # d = a.filter(models.Announcement.category == category) - - # if not any([category, owner_id, metro]) and booked_by == 0: - # result = a.all() - - # else: - # result = b.intersect(c, d, e).all() return {"Success" : True, "list_of_announcements": result, "poem": generate_poem(database)} @@ -85,7 +76,7 @@ def single_annoncement(user_id:int): return {"Answer" : False} #если неуданый доступ, то сообщаем об этом -# Занести объявление в базу +# Занести объявление в базу данных @app.put("/api/announcement")#адрес объявлений def put_in_db(name: Annotated[str, Form()], category: Annotated[str, Form()], bestBy: Annotated[int, Form()], address: Annotated[str, Form()], longtitude: Annotated[float, Form()], latitude: Annotated[float, Form()], diff --git a/back/models.py b/back/models.py index b1f6455..8909ab9 100644 --- a/back/models.py +++ b/back/models.py @@ -65,8 +65,9 @@ class Poems(Base):#класс поэзии __tablename__ = "poems" id = Column(Integer, primary_key=True, index=True) #айди - poem_name = Column(String) # название стихотворения - poem_text = Column(String) # текст стихотворения + title = Column(String) # название стихотворения + text = Column(String) # текст стихотворения + author = Column(String) # автор стихотворения # from typing import AsyncGenerator # from sqlalchemy.ext.asyncio import AsyncSession, async_sessionmaker, create_async_engine diff --git a/back/service.py b/back/service.py index a37db93..07269e8 100644 --- a/back/service.py +++ b/back/service.py @@ -12,23 +12,34 @@ def add_poems_to_db(db: Session): for a in range(1, 102): f1.seek(0)#перейти к началу i=0 - str1="" + str1 = "" stixi = "" + author = "" + flag = False while str1 != f"стих {a}\n": str1=f1.readline() name=f1.readline() # Цикл для склеивания стихотворения while str1 != f"стих {a+1}\n": str1=f1.readline() - if(str1 != f"стих {a+1}\n"): - stixi+=str1#удаление /n и заключение в список - poem = Poems(poem_name=name, poem_text=stixi) + if str1 != f"стих {a + 1}\n": + if (str1 != f"Автор:\n" and flag == False): + stixi += str1 # удаление /n и заключение в список + else: + if str1 == f"Автор:\n":#чтобы не записывать слово "автор" + flag = True + else: + author += str1 + if(str1 != f"стих {a+1}\n"): + stixi+=str1#удаление /n и заключение в список + poem = Poems(title=name, text=stixi, author=author) # В конце каждой итерации добавляем в базу данных db.add(poem) db.commit() db.refresh(poem) # close the file f1.close() + def generate_poem(db: Session):