#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. Не совсем понятно, что не работает? Что вы пробовали?