Python tətbiqləri: Django, Flask və FastAPI.
Django, Flask və FastAPI layihələrinin necə tanınması və işə salınması, hansı giriş nöqtəsini axtardığımız, statik fayllar, miqrasiyalar və Celery-nin işə salınması.
requirements.txt, pyproject.toml, Pipfile və ya manage.py faylı olan repozitoriya Python layihəsidir. Django, Flask və FastAPI freymvorklarını tanıyır və onları istehsal serveri ilə işə salırıq — serveri özünüz əlavə etməyiniz lazım deyil.
Necə yığılır və işə salınır
- Python 3.11.
- Asılılıqlar —
pip install -r requirements.txt,pyproject.tomlüçün isəpip install .. - Server — Django və Flask gunicorn, FastAPI isə uvicorn üzərində işləyir. Serveri quraşdırmaya özümüz əlavə edirik.
Django
manage.pyfaylına və ya asılılıqlardakıdjangopaketinə görə tanınır.- Giriş nöqtəsi
manage.pyfaylındakıDJANGO_SETTINGS_MODULEdəyərindən götürülür —<project>.wsgi:application. - Statik fayllar — yığım zamanı
python manage.py collectstaticicra olunur. Onları tətbiqdən WhiteNoise ilə (onu middleware siyahınıza əlavə edin) və ya obyekt yaddaşından təqdim edin. - Miqrasiyalar — tövsiyə olunan buraxılış əmri
python manage.py migrate --noinputəmridir. O, hər yerləşdirmədə, yeni versiya ziyarətçiləri qəbul etməzdən əvvəl icra olunur; uğursuz olarsa, cari versiya işləməyə davam edir. - Domeninizi və
rivervo.appünvanınıALLOWED_HOSTSsiyahısına əlavə edin (məsələn, dəyişəndən), HTTPS formaları üçün isəCSRF_TRUSTED_ORIGINSdəyərini təyin edin.
Flask və FastAPI
Tətbiqi yaradan faylı — app.py, main.py, wsgi.py, application.py və ya server.py — və tətbiqin saxlandığı dəyişəni axtarırıq:
# app.py
from flask import Flask
app = Flask(__name__) # → app:app kimi işə salınır# main.py
from fastapi import FastAPI
app = FastAPI() # → main:app kimi işə salınırTətbiqiniz başqa yerdə yaradılırsa (application factory, paket), Parametrlər → Yığım parametrləri → İşə salma əmri sahəsini təyin edin, məsələn:
gunicorn "myproject:create_app()" --bind 0.0.0.0:$PORT
uvicorn myproject.api:app --host 0.0.0.0 --port $PORTVerilənlər bazaları
Layihəyə PostgreSQL və ya MySQL əlavə edin və DATABASE_URL dəyişənini oxuyun — Django üçün dj-database-url ilə, SQLAlchemy ilə isə birbaşa. Ətraflı: Verilənlər bazaları.
Celery və digər fon prosesləri
Layihəyə Valkey əlavə edin və Celery-ni REDIS_URL dəyişəninə yönəldin. Prosesi işə salın:
- Proseslər bölməsində fon prosesi kimi —
celery -A myproject worker -l info; - və ya öz resursları olan ayrıca fon prosesi servisi kimi;
- Celery beat-i daha bir fon prosesi kimi —
celery -A myproject beat -l info— və ya dövri əmri planlaşdırılmış əmr ya da planlaşdırılmış tapşırıq kimi.
Ətraflı: Layihənin servisləri.
Yerləşdirmədən sonra qalan fayllar
Hər yerləşdirmə repozitoriyanızın təzə surəti ilə başlayır. Tətbiqinizin /data qovluğuna yazdığı fayllar yerləşdirmələr arasında saxlanılır və hər gün ehtiyat nüsxəyə alınır; başqa yerə yazılan fayllar növbəti yerləşdirmədən sonra silinir. İstifadəçilərin yüklədiyi fayllar üçün obyekt yaddaşından istifadə edin (Django üçün S3_* dəyişənləri ilə django-storages).
Digər Python layihələri
Bu freymvorklardan heç birini istifadə etməyən Python layihəsi üçün repozitoriyada öz Dockerfile faylınız olmalıdır; bu halda yığımı onunla, olduğu kimi aparırıq.