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ı.

2 DƏQ OXUMA

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.py faylına və ya asılılıqlardakı django paketinə görə tanınır.
  • Giriş nöqtəsi manage.py faylındakı DJANGO_SETTINGS_MODULE dəyərindən götürülür — <project>.wsgi:application.
  • Statik fayllar — yığım zamanı python manage.py collectstatic icra 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_HOSTS siyahısına əlavə edin (məsələn, dəyişəndən), HTTPS formaları üçün isə CSRF_TRUSTED_ORIGINS də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ır

Tə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 $PORT

Verilə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.

Daha sualınız varmı?

Canlı dəstəklə əlaqə saxlayın — günün istənilən vaxtı 3 dəqiqədən az median cavab müddəti.

Dəstəklə əlaqə