python FAST API swagger with SQLite3

Publicado em: 22 Setembro 2021
no canal de: python shorts
784
20

Welcome to my channel! In this video, I will be showing you FastAPI which is a Python framework. As the name suggests, this allows us to make APIs in Python.

😎 Follow me on:    / @pythonshorts6529  

0:00 Intro
0:04 Create Main File
0:12 Import Libraries
0:16 Create Code
1:00 Create File requests HTTP
1:21 Run server Uvicorn
1:30 Test HTTP on VSCode
1:44 Test API with Swagger

CODE FastAPI:

Python Shorts
CRUD with FastAPI
from typing import List
import databases
import sqlalchemy
from fastapi import FastAPI, status
from fastapi.middleware.cors import CORSMiddleware
from pydantic import BaseModel

DATABASE_URL = "sqlite:///mydb.db"
database = databases.Database(DATABASE_URL)
metadata = sqlalchemy.MetaData()

todos = sqlalchemy.Table(
"todos",
metadata,
sqlalchemy.Column("id", sqlalchemy.Integer, primary_key=True),
sqlalchemy.Column("text", sqlalchemy.String),
sqlalchemy.Column("completed", sqlalchemy.Boolean),
)

engine = sqlalchemy.create_engine(
DATABASE_URL
)
metadata.create_all(engine)

class TodoIn(BaseModel):
text: str
completed: bool

class Todo(BaseModel):
id: int
text: str
completed: bool

app = FastAPI(title = "[CRUD] REST API with FastAPI - Async EndPoints")
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)

@app.on_event("startup")
async def startup():
await database.connect()

@app.on_event("shutdown")
async def shutdown():
await database.disconnect()

@app.get("/todos/", response_model=List[Todo], status_code = status.HTTP_200_OK)
async def read_todos(skip: int = 0, take: int = 20):
query = todos.select().offset(skip).limit(take)
return await database.fetch_all(query)

@app.get("/todos/{todo_id}/", response_model=Todo, status_code = status.HTTP_200_OK)
async def read_todos(todo_id: int):
query = todos.select().where(todos.c.id == todo_id)
return await database.fetch_one(query)

@app.post("/todos/", response_model=Todo, status_code = status.HTTP_201_CREATED)
async def create_todo(todo: TodoIn):
query = todos.insert().values(text=todo.text, completed=todo.completed)
last_record_id = await database.execute(query)
return {**todo.dict(), "id": last_record_id}

@app.put("/todos/{todo_id}/", response_model=Todo, status_code = status.HTTP_200_OK)
async def update_todo(todo_id: int, payload: TodoIn):
query = todos.update().where(todos.c.id == todo_id).values(text=payload.text, completed=payload.completed)
await database.execute(query)
return {**payload.dict(), "id": todo_id}

@app.delete("/todos/{todo_id}/", status_code = status.HTTP_200_OK)
async def delete_todo(todo_id: int):
query = todos.delete().where(todos.c.id == todo_id)
await database.execute(query)
return {"message": "Todo ID: {} deleted successfully!".format(todo_id)}

========================================

CODE Request:

POST http://localhost:8000/todos/
Accept: application/json
Content-Type: application/json

{
"text": "New ToDo from available",
"completed": false
}

###
GET http://localhost:8000/todos?skip=0&take=20

###
GET http://localhost:8000/todos/1/

###
PUT http://localhost:8000/todos/1/
Accept: application/json
Content-Type: application/json

{
"text": "Changed ToDo to Completed",
"completed": true
}

###
DELETE http://localhost:8000/todos/2/
Accept: application/json


=================================
CODE Run:

uvicorn --port 8000 --host 127.0.0.1 main:app --reload



Tags
Fast API Example
Python API
Python Rest API
Python FastAPI Tutorial
Python Demo
Fast API


Nesta página do site você pode assistir ao vídeo on-line python FAST API swagger with SQLite3 duração hora minuto segundo em boa qualidade , que foi baixado pelo usuário python shorts 22 Setembro 2021, compartilhe o link com seus amigos e conhecidos, no youtube este vídeo já foi visto 784 vezes e gostou 20 espectadores. Boa visualização!