├── API_Ready_To_Deploy ├── requirements.txt ├── __pycache__ │ └── main.cpython-312.pyc ├── render.yaml └── main.py ├── code_Without_API.py ├── FastAPI_APP.py ├── README.md ├── Python_GUI_Desktop_Example.py └── HTML_Example.html /API_Ready_To_Deploy/requirements.txt: -------------------------------------------------------------------------------- 1 | fastapi 2 | uvicorn 3 | pydantic -------------------------------------------------------------------------------- /API_Ready_To_Deploy/__pycache__/main.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pythonation/FastAPI_Tutorial/HEAD/API_Ready_To_Deploy/__pycache__/main.cpython-312.pyc -------------------------------------------------------------------------------- /API_Ready_To_Deploy/render.yaml: -------------------------------------------------------------------------------- 1 | services: 2 | - type: web 3 | name: fastapi-bmi 4 | env: python 5 | buildCommand: pip install -r requirements.txt 6 | startCommand: uvicorn main:app --host 0.0.0.0 --port $PORT 7 | envVars: 8 | - key: PYTHON_VERSION 9 | value: 3.9.0 -------------------------------------------------------------------------------- /code_Without_API.py: -------------------------------------------------------------------------------- 1 | 2 | def calculate_bmi(): 3 | weight = float(input("أدخل وزنك بالكيلوجرام: ")) 4 | height = float(input("أدخل طولك بالمتر: ")) 5 | bmi = weight / (height ** 2) 6 | 7 | if bmi < 18.5: 8 | message = "لديك نقص في الوزن، كُل أكثر" 9 | elif 18.5 <= bmi < 25: 10 | message = "لديك وزن طبيعي، حافظ عليه" 11 | elif 25 <= bmi < 30: 12 | message = "لديك زيادة في الوزن، تمرن أكثر" 13 | else: 14 | message = "أنت تعاني من السمنة، قم بمراجعة طبيب" 15 | 16 | print ("Your BMI: ",bmi) 17 | print(message) 18 | 19 | calculate_bmi() -------------------------------------------------------------------------------- /FastAPI_APP.py: -------------------------------------------------------------------------------- 1 | from fastapi import FastAPI , Query 2 | from pydantic import BaseModel 3 | from fastapi.middleware.cors import CORSMiddleware 4 | 5 | app = FastAPI() 6 | app.add_middleware(CORSMiddleware, 7 | allow_origins=["*"], allow_methods=["*"],allow_headers=["*"], 8 | ) 9 | class BMIOutput(BaseModel): 10 | bmi: float 11 | message: str 12 | 13 | @app.get("/") 14 | def Hi(): 15 | return {"message": "Marhaba python"} 16 | 17 | @app.get("/calculate_bmi") 18 | def calculate_bmi( 19 | weight: float= Query(... , gt=20,lt=200, description="الوزن بالكيلوغرام") , 20 | height: float= Query(..., gt=1, lt=3, description="الطول بالمتر") 21 | ): 22 | bmi = weight / (height ** 2) 23 | if bmi < 18.5: 24 | message = "لديك نقص في الوزن، كُل أكثر " 25 | elif 18.5 <= bmi < 25: 26 | message = "لديك وزن طبيعي، حافظ عليه." 27 | elif 25 <= bmi < 30: 28 | message = "لديك زيادة في الوزن، تمرن أكثر" 29 | else: 30 | message = "أنت تعاني من السمنة، قم بمراجعة طبيب" 31 | return BMIOutput(bmi=bmi,message=message) 32 | 33 | -------------------------------------------------------------------------------- /API_Ready_To_Deploy/main.py: -------------------------------------------------------------------------------- 1 | from fastapi import FastAPI, Query 2 | from pydantic import BaseModel 3 | 4 | # إعداد CORS للسماح بطلبات من متصفح الويب 5 | from fastapi.middleware.cors import CORSMiddleware 6 | 7 | app = FastAPI() 8 | 9 | app.add_middleware( 10 | CORSMiddleware, 11 | allow_origins=["*"], # يجب تحديد المجالات المسموح بها في الإنتاج 12 | allow_methods=["*"], 13 | allow_headers=["*"], 14 | 15 | ) 16 | 17 | class BMIOutput(BaseModel): 18 | bmi: float 19 | message: str 20 | image: str 21 | 22 | @app.get("/") 23 | def Hi(): 24 | return {"message": "Marhaba python"} 25 | 26 | @app.get("/calculate_bmi") 27 | def calculate_bmi( 28 | weight: float = Query(..., gt=20, lt=200, description="الوزن بالكيلوغرام"), 29 | height: float = Query(..., gt=1, lt=3, description="الطول بالمتر") 30 | ): 31 | bmi = weight / (height ** 2) 32 | 33 | if bmi < 18.5: 34 | message = "لديك نقص في الوزن، كُل أكثر" 35 | pic = "1" 36 | elif 18.5 <= bmi < 25: 37 | message = "لديك وزن طبيعي، حافظ عليه" 38 | pic = "2" 39 | elif 25 <= bmi < 30: 40 | message = "لديك زيادة في الوزن، تمرن أكثر" 41 | pic = "3" 42 | else: 43 | message = "أنت تعاني من السمنة، قم بمراجعة طبيب" 44 | pic="4" 45 | 46 | return BMIOutput(bmi=bmi, message=message,image=pic) 47 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 |
| `code_Without_API.py`: | 17 |كود بايثون بسيط وهو الكود الذي سنحوله الى API. | 18 |
| `FastAPI_APP.py`: | 21 |الـ API التي تم بناؤها في آخر المشروع (المشروع الذي تعلمنا بناءه). | 22 |
| `HTML_Example.html`: | 25 |صفحة ويب بسيطة باستخدام HTML تتفاعل مع الـ API. | 26 |
| `Python_GUI_Desktop_Example.py`: | 29 |مثال لتطبيق Desktop بواجهة رسومية باستخدام Python يتفاعل مع الـ API. | 30 |
| `/API_Ready_To_Deploy`: | 33 |مجلّد يحتوي على API جاهزة للنشر على منصّات الاستضافة مثل Render. | 34 |
مؤشر كتلة الجسم (BMI) هو مقياس يستخدم لتقدير ما إذا كان الشخص يتمتع بوزن صحي بالنسبة لطوله. يساعد هذا المؤشر في تقييم مخاطر الإصابة بأمراض معينة مرتبطة بالوزن.
82 |تذكر أن مؤشر كتلة الجسم هو دليل عام فقط. استشر طبيبك للحصول على تقييم صحي شامل.
90 |