Commit 9fe33060 by arjun.b

fast api task completed

parent 43d4dbb0
BASE_PATH=
URI="mongodb://localhost:27017"
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9" project-jdk-type="Python SDK" />
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9 (new_pymongo)" project-jdk-type="Python SDK" />
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="jdk" jdkName="Python 3.9" jdkType="Python SDK" />
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/venv" />
</content>
<orderEntry type="jdk" jdkName="Python 3.9 (new_pymongo)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
[path]
base_path= scripts/temp/emp.csv
[mongo]
uri=$URI
\ No newline at end of file
from pymongo import MongoClient
from scripts.constants.application_config import mongo_uri
def db_connect():
try:
......@@ -14,3 +16,4 @@ def db_connect():
return database
except Exception as e:
print(str(e))
from mongoengine import Document, StringField, ObjectIdField, IntField
from pydantic import BaseModel
class Employee(Document):
......@@ -8,3 +9,18 @@ class Employee(Document):
last_name: StringField()
gender: StringField()
phone: StringField()
class employee_insert(BaseModel):
_id: str
id: int
first_name: str
last_name: str
gender: str
phone: str
class employee_update(BaseModel):
id: int
class employee_delete(BaseModel):
id:int
def insert_data(collection, data):
inserted = collection.insert_many(data.to_dict('records'))
if inserted:
return True
else:
return False
try:
inserted = collection.insert_many(data.to_dict('records'))
if inserted:
return True
else:
return False
except Exception as e:
print(str(e))
import pandas as pd
from scripts.constants.application_config import file_path
def read_file():
try:
dataset=pd.read_csv(r'E:\new_pymongo\temp\emp.csv')
dataset = pd.read_csv(file_path)
return dataset
except Exception as e:
print(str(e))
\ No newline at end of file
print(str(e))
import json
from fastapi import FastAPI
from mongoengine import connect
from scripts.constants.db_connection import db_connect
from scripts.core.engine.model import Employee, employee_insert, employee_update, employee_delete
from scripts.core.handlers.find_all import read_all
from scripts.core.handlers.insert_data import insert_data
from scripts.core.handlers.read_file import read_file
from scripts.utils.mongo_utils import create_collection
from scripts.core.engine.model import Employee
from mongoengine import connect
app = FastAPI()
connect(db="employees", host="localhost", port=27017)
......@@ -14,14 +16,43 @@ connect(db="employees", host="localhost", port=27017)
@app.get("/")
async def root():
return {"data": "hello"}
return {"data": "FastAPI CRUD Operations"}
# csv file insert into database
@app.get("/get_details", tags=["read data"])
def get_all_details():
employees = Employee.objects().to_json()
emp_dict = json.loads(employees)
# print(employees)
return {"data": employees}
return {"data": emp_dict}
# insert data using post method
@app.post("/send_data", tags=['send data'])
def send_data(emp: employee_insert):
new_employee = employee_insert(id=emp.id,
first_name=emp.first_name,
last_name=emp.last_name,
gender=emp.gender,
phone=emp.phone)
collection.insert_one(dict(new_employee))
return {"message": "new data has been inserted"}
# update data using
@app.put("/update_data", tags=["update database"])
def update_data(emp: employee_update):
update_emp = employee_update(id=emp.id)
collection.update_one({"id": update_emp.id}, {"$set": {"first_name": "ARJUN"}})
return {"data": "data updated"}
@app.delete("/delete_data", tags=["delete data"])
def delete_data(emp: employee_delete):
delete_emp = employee_delete(id=emp.id)
collection.delete_one({"id": delete_emp.id})
return {"data": "data deleted"}
# read csv file
......
def create_collection(db):
collection_name="employee"
collection=db[collection_name]
collection_name = "employee"
collection = db[collection_name]
return collection
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment