Rework Dirs

This commit is contained in:
2024-09-01 18:34:55 +03:30
parent 84196c3034
commit 8c9be226a5
51 changed files with 0 additions and 92 deletions

View File

@@ -0,0 +1,3 @@
from django.contrib import admin
# Register your models here.

View File

@@ -0,0 +1,6 @@
from django.apps import AppConfig
class InfoConfig(AppConfig):
default_auto_field = "django.db.models.BigAutoField"
name = "info"

View File

@@ -0,0 +1,3 @@
from django.db import models
# Create your models here.

View File

@@ -0,0 +1,24 @@
from rest_framework import serializers
class MemoryInfoSerializer(serializers.Serializer):
total = serializers.IntegerField()
available = serializers.IntegerField()
percent = serializers.FloatField()
used = serializers.IntegerField()
free = serializers.IntegerField()
active = serializers.IntegerField()
inactive = serializers.IntegerField()
buffers = serializers.IntegerField()
cached = serializers.IntegerField()
shared = serializers.IntegerField()
class CpuInfoSerializer(serializers.Serializer):
info = serializers.FloatField()
class HardInfoSerializer(serializers.Serializer):
total = serializers.IntegerField()
used = serializers.IntegerField()
free = serializers.IntegerField()
percent = serializers.FloatField()

View File

@@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.

View File

@@ -0,0 +1,7 @@
from django.urls import path
from .views import *
urlpatterns = [
path("memory", MemoryInfoView.as_view(),name="memory"),
path("cpu", CpuInfoView.as_view(),name="cpu"),
path("hard",HardInfoView.as_view(),name='hard'),
]

View File

@@ -0,0 +1,34 @@
from django.shortcuts import render
from rest_framework.views import APIView
from rest_framework.response import Response
from .serializers import *
import psutil
import os
# Create your views here.
class MemoryInfoView(APIView):
def get(self, request, *args, **kwargs):
memo_info = psutil.virtual_memory()._asdict()
seri = MemoryInfoSerializer(data=memo_info)
if seri.is_valid():
return Response(seri.data)
return Response(seri.errors,status=400)
class CpuInfoView(APIView):
def get(self, request, *args, **kwargs):
cpu_info = psutil.cpu_percent()
info = {"info":cpu_info}
seri= CpuInfoSerializer(data=info)
if seri.is_valid():
return Response(seri.data)
return Response(seri.errors,status=400)
class HardInfoView(APIView):
def get(self,request,*args,**kwargs):
hard_info = psutil.disk_usage(os.getcwd())._asdict()
seri = HardInfoSerializer(data=hard_info)
if seri.is_valid():
return Response(seri.data)
return Response(seri.errors,status=400)

View File

@@ -0,0 +1,22 @@
#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys
def main():
"""Run administrative tasks."""
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "sysinfo.settings")
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,40 @@
جمع‌آوری اطلاعات سیستم با استفاده از Django و Django Rest Framework
مقدمه
در این پروژه، از Django و Django Rest Framework استفاده شده‌است تا اطلاعاتی از سیستم مانند CPU، حافظه و ... جمع‌آوری شود.
راه‌اندازی
نصب مورد نیازها
برای نصب وابستگی‌های مورد نیاز:
bash
Copy code
pip install -r requirements.txt
راه‌اندازی دیتابیس
برای مهاجرت دیتابیس، دستورات زیر را اجرا کنید:
bash
Copy code
python manage.py makemigrations
python manage.py migrate
اجرای سرور
برای اجرای سرور توسط Django:
bash
Copy code
python manage.py runserver
API ها
دریافت اطلاعات CPU
URL: /api/cpu_info/
روش: GET
خروجی: اطلاعات مربوط به CPU
دریافت اطلاعات حافظه
URL: /api/memory_info/
روش: GET
خروجی: اطلاعات مربوط به حافظه
... (و همین طور برای سایر API ها)
جمع‌بندی
این پروژه به شما امکان می‌دهد تا با استفاده از یک وب API ساده، اطلاعات مختلف سیستم را مشاهده کنید.