Versi 2021, Berdasarkan FastAPI, aplikasi web yang mudah digunakan yang dikembangkan di Starlette Framework
pip3 install -r ./requirements.txtAplikasi web didasarkan pada gaya bawang ~
Struktur direktori adalah:
__init__.py sebagai entri modul pengguna__init__.py sebagai entri modul inti, lebih baik membuatnya dapat digunakan kembali dalam proyek lain Jalankan ./main.py untuk memulai contoh, yang meliputi:
Langkah -langkah internal adalah:
./main.py memuat konfigurasi di dalam ./cfg/{env} pada cmd args, lalu memanggil uvicorn.run untuk memulai aplikasi fastapi di ./app/__init__.py./app/__init__.py , modul inti dan penangan/model/layanan pengguna dimuat pada acara startup aplikasi FastAPI Anda dapat menempatkan skrip peluncuran Anda di dalam ./misc/build untuk opsi peluncuran Anda yang berbeda
Untuk membangun logika Anda, langkah -langkah umum adalah berikut:
./main.py menjalankan server di lingkungan dev secara default, di mana hot-reload diaktifkan./app/handler , tambahkan Kode import & APP.include_router yang sesuai di ./app/__init__.py./app/model , tambahkan layanan di ./app/service./app/middleware jika perluBeberapa tips untuk pengkodean:
/docs untuk menguji router di halaman webasync def ), karena dapat memblokir evtloop utama, sehingga permintaan lain tidak ditangani dalam waktu. fungsi def akan dipanggil di utas yang berbeda./core harus dibagikan (untuk proyek lain), kode ./app harus sesuai dengan proyek saat ini./misc/dev/gen_code.py untuk menghasilkan kode template untuk penangan, model & layanan. Jalankan dengan direktori kerja sebagai direktori root proyekpydantic.BaseModel , sangat kuatSebagian besar permintaan yang ditangani harus berisi kode status 200
Solusi sederhana adalah dengan menggunakan model Resp di ./core/model/handler.py untuk menghasilkan badan respons untuk penangan Anda
{
"success": bool,
"message": str,
"code": IntEnum,
"data": Any,
}
Gunakan Resp.ok untuk menghasilkan respons keberhasilan dan menggunakan Resp.err untuk menghasilkan respons kesalahan
Test Handler ./app/handler/test.py berisi contoh -contoh penangan WS
Untuk mengetahui lebih banyak tentang itu, lihat dokumentasi WebSocket
Jalankan ./misc/build/pack.sh untuk mengemas proyek ke ./misc/build/start-fastapi.tar.gz
Lihat ./misc/build/Dockerfile untuk contoh penyebaran Docker