This commit is contained in:
DmitryGantimurov 2023-08-07 00:03:04 +03:00
commit 5dc90b625e
3 changed files with 34 additions and 31 deletions

View File

@ -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()],

View File

@ -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

View File

@ -12,17 +12,27 @@ 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":
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(poem_name=name, poem_text=stixi)
poem = Poems(title=name, text=stixi, author=author)
# В конце каждой итерации добавляем в базу данных
db.add(poem)
db.commit()
@ -31,6 +41,7 @@ def add_poems_to_db(db: Session):
f1.close()
def generate_poem(db: Session):
# генерируем 1 случайное id и выбираем объект бд с этим id
rand_id = random.randint(1, 102)