diff --git a/Django/db.sqlite3 b/Django/db.sqlite3 new file mode 100644 index 0000000..e69de29 diff --git a/Django/info/__init__.py b/Django/info/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Django/info/__pycache__/__init__.cpython-39.pyc b/Django/info/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000..5b44c4f Binary files /dev/null and b/Django/info/__pycache__/__init__.cpython-39.pyc differ diff --git a/Django/info/__pycache__/serializers.cpython-39.pyc b/Django/info/__pycache__/serializers.cpython-39.pyc new file mode 100644 index 0000000..81b9344 Binary files /dev/null and b/Django/info/__pycache__/serializers.cpython-39.pyc differ diff --git a/Django/info/__pycache__/urls.cpython-39.pyc b/Django/info/__pycache__/urls.cpython-39.pyc new file mode 100644 index 0000000..6f97f53 Binary files /dev/null and b/Django/info/__pycache__/urls.cpython-39.pyc differ diff --git a/Django/info/__pycache__/views.cpython-39.pyc b/Django/info/__pycache__/views.cpython-39.pyc new file mode 100644 index 0000000..c73472b Binary files /dev/null and b/Django/info/__pycache__/views.cpython-39.pyc differ diff --git a/Django/info/admin.py b/Django/info/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/Django/info/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/Django/info/apps.py b/Django/info/apps.py new file mode 100644 index 0000000..7da20ee --- /dev/null +++ b/Django/info/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class InfoConfig(AppConfig): + default_auto_field = "django.db.models.BigAutoField" + name = "info" diff --git a/Django/info/migrations/__init__.py b/Django/info/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Django/info/models.py b/Django/info/models.py new file mode 100644 index 0000000..71a8362 --- /dev/null +++ b/Django/info/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/Django/info/serializers.py b/Django/info/serializers.py new file mode 100644 index 0000000..ec839fa --- /dev/null +++ b/Django/info/serializers.py @@ -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() + diff --git a/Django/info/tests.py b/Django/info/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/Django/info/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/Django/info/urls.py b/Django/info/urls.py new file mode 100644 index 0000000..a9ac88a --- /dev/null +++ b/Django/info/urls.py @@ -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'), +] \ No newline at end of file diff --git a/Django/info/views.py b/Django/info/views.py new file mode 100644 index 0000000..a80027b --- /dev/null +++ b/Django/info/views.py @@ -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) + diff --git a/Django/manage.py b/Django/manage.py new file mode 100755 index 0000000..8e9accf --- /dev/null +++ b/Django/manage.py @@ -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()