Set id for users automatically in FastAPI and pydantic , uuid4 in Python.

Free Python Code - Sep 5 '23 - - Dev Community

Hi πŸ™‚πŸ–

Welcome In a new post, today I will share with you how to set ids for users automatically in FastAPI and Pydantic, and uuid4 in Python.

step 1

Import modules

from fastapi import FastAPI
from pydantic import BaseModel
from uuid import uuid4

import json
Enter fullscreen mode Exit fullscreen mode

step 2

Create a Json file to store user into it

{
    "users": [

    ]
}
Enter fullscreen mode Exit fullscreen mode

step 3

Load the json file

users_db = json.load(open('users.json', 'r'))
Enter fullscreen mode Exit fullscreen mode

step 4

Create the user Model

class User(BaseModel):
    username : str
    password : str
Enter fullscreen mode Exit fullscreen mode

step 5

Create the api and add_user Route

app = FastAPI()

@app.post('/add_user')
def add_user(user : User):

    users_db['users'].append({
        "id": str(uuid4()),
        "username": user.username,
        "password": user.password
    })

    json.dump(users_db, open('users.json', 'w'), indent = 4)
    return {'user': user.username}
Enter fullscreen mode Exit fullscreen mode

full code


from fastapi import FastAPI
from pydantic import BaseModel
from uuid import uuid4

import json

users_db = json.load(open('users.json', 'r'))

class User(BaseModel):
    username : str
    password : str

app = FastAPI()

@app.post('/add_user')
def add_user(user : User):

    users_db['users'].append({
        "id": str(uuid4()),
        "username": user.username,
        "password": user.password
    })

    json.dump(users_db, open('users.json', 'w'), indent = 4)
    return {'user': user.username}
Enter fullscreen mode Exit fullscreen mode

Now we are redy to add new user

import requests

data = {
    'username': 'test123',
    'password': '123'
}

res = requests.post('http://127.0.0.1:8000/add_user', json=data)
print(res.json())
Enter fullscreen mode Exit fullscreen mode

result

{'user': 'test123'}
Enter fullscreen mode Exit fullscreen mode

Now we're done πŸ€—

Don't forget to like and follow πŸ™‚

Support me on PayPal πŸ€—
https://www.paypal.com/paypalme/amr396

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .