Передача request.status_code и datetime в базу данных sqlite с использованием fastapi и tortoise

#python #python-3.x #fastapi #tortoise-orm

#python #python-3.x #fastapi #tortoise-orm

Вопрос:

Я пытаюсь научиться использовать fastapi с tortoise для создания базы данных sqlite. Итак, мой план состоял в том, чтобы отправить URL-адрес в api, а сервер должен выполнить запрос GET по URL-адресу и отправить обратно идентификатор, URL, ответ (код) и дату (datetime), а также сохранить его в базе данных sqlite. Я создал код, чтобы я мог передавать все параметры как json: Пример:

 curl -X POST "http://127.0.0.1:8000/data" -H  "accept: application/json" -H  "Content-Type: application/json" -d "{"url":"http://somesite.com","response":"200","date":"2020-12-15 22:53"}"
 

Код:

 import requests
from tortoise. models import Model
from datetime import datetime
from tortoise.contrib.fastapi import register_tortoise
from tortoise import fields
from fastapi import FastAPI
from tortoise.contrib.pydantic import pydantic_model_creator


app = FastAPI()


class Data(Model):
    id = fields.IntField(pk=True)
    url = fields.CharField(80, unique=False)
    response = fields.CharField(4, unique=False)
    date = fields.CharField(50, unique=False)


Data_pydantic = pydantic_model_creator(Data, name='Datamod')
Data_pydantic_in = pydantic_model_creator(Data, name='Datamodin', exclude_readonly=True)



@app.get('/')
async def index():
    return {'Hi': 'World'}

@app.post('/data')
async def response(data: Data_pydantic_in):
    databbj = await Data.create(**data.dict(exclude_unset=True))
    return await  Data_pydantic.from_tortoise_orm(databbj)

register_tortoise(
    app,
    db_url='sqlite://db.sqlite3',
    modules={'models': ['root']},
    generate_schemas=True,
    add_exception_handlers=True
)
 

Но как я могу заставить api запрашивать только URL-адрес и заставить сервер выполнить запрос и передать другие данные в api?

Комментарии:

1. Не совсем понятно, что не работает? Что вы пробовали?