Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apl Todo FastAPI: Menyediakan Projek Apl Todo Anda

Apl Todo FastAPI: Menyediakan Projek Apl Todo Anda

WBOY
WBOYasal
2024-07-26 12:16:511268semak imbas

FastAPI Todo App: Setting Up Your Todo App Project

Bermula dengan FastAPI: Menyediakan Projek Apl Todo Anda

I. Pengenalan

Dalam siri blog ini, pembaca akan belajar cara membina Apl Tugasan dengan FastAPI. Siri ini akan membimbing anda langkah demi langkah dalam mencipta aplikasi To-Do dari awal menggunakan FastAPI, rangka kerja web Python moden dan berprestasi tinggi. Kandungannya merangkumi segala-galanya daripada menyediakan persekitaran pembangunan hingga menggunakan apl. Menjelang penghujung siri ini, pembaca akan mencipta Apl Tugasan mereka sendiri dan memperoleh pemahaman yang kukuh tentang FastAPI.

Setiap siaran dalam siri ini akan menumpukan pada aspek khusus proses pembangunan, memberikan penjelasan yang jelas dan contoh kod praktikal. Matlamatnya adalah untuk melengkapkan pembaca dengan pengetahuan dan kemahiran yang diperlukan untuk membina aplikasi web menggunakan FastAPI. Sama ada anda seorang pemula yang ingin mempelajari pembangunan web atau pembangun berpengalaman yang meneroka FastAPI, siri ini bertujuan untuk memberikan cerapan berharga dan pengalaman praktikal.

Siaran awal akan memperkenalkan FastAPI untuk membantu anda menyediakan persekitaran pembangunan anda dan mencipta aplikasi FastAPI anda.

Kod Blog dalam Todo_Part1 dir: GitHub - jamesbmour/blog_tutorials

II. Pengenalan kepada FastAPI dan faedahnya

A. Apakah FastAPI?

FastAPI ialah rangka kerja web moden, pantas (berprestasi tinggi) untuk membina API dengan Python 3.6+ berdasarkan pembayang jenis Python standard. Ia direka bentuk agar mudah digunakan, cepat untuk dikod, sedia untuk pengeluaran dan berdasarkan ciri Python terkini.

B. Ciri utama FastAPI

  1. Prestasi pantas: FastAPI dibina di atas Starlette untuk bahagian web dan Pydantic untuk bahagian data, menjadikannya salah satu rangka kerja Python terpantas yang tersedia.
  2. Mudah digunakan dan dipelajari: FastAPI sangat mesra pembangun, dengan reka bentuk intuitif dan dokumentasi yang sangat baik.
  3. Dokumentasi API automatik: FastAPI menjana dokumentasi API interaktif secara automatik (menggunakan Swagger UI dan ReDoc) berdasarkan kod anda.
  4. Pemeriksaan jenis dan sokongan editor: FastAPI memanfaatkan pembayang jenis Python, memberikan sokongan editor yang sangat baik dengan autolengkap dan pengesanan ralat.

C. Perbandingan dengan rangka kerja web Python yang lain

Berbanding dengan rangka kerja web Python popular lain seperti Flask atau Django, FastAPI menawarkan:

  • Prestasi yang lebih baik
  • Dokumentasi API terbina dalam
  • Pengendalian pengesahan permintaan/tindak balas yang lebih mudah
  • Sokongan tak segerak asli

D. Mengapa FastAPI sesuai untuk membina Apl Todo

Untuk Apl Todo kami, FastAPI ialah pilihan terbaik kerana:

  • Ia membolehkan pembangunan pesat titik akhir API kami.
  • Ia menyediakan pengesahan permintaan automatik, mengurangkan jumlah kod yang perlu kami tulis.
  • Dokumentasi API terbina dalam akan memudahkan ujian titik akhir kami.
  • Prestasi tingginya akan memastikan apl kami kekal responsif walaupun ia berkembang.

III. Menyediakan persekitaran pembangunan

A. Memasang Python (3.7+)

Pastikan anda telah memasang Python 3.7 atau lebih baru. Anda boleh memuat turunnya daripada python.org.

B. Mewujudkan persekitaran maya

Amalan terbaik untuk menggunakan persekitaran maya untuk projek Python. Begini cara untuk menciptanya:

  1. Menggunakan venv:
python -m venv todo-env
source todo-env/bin/activate  # On Windows, use `todo-env\Scripts\activate`
  1. Menggunakan conda (alternatif):
conda create --name todo-env python=3.9
conda activate todo-env
  1. Pasang Puisi
poetry install  
# activate the virtual environment  
poetry shell  

C. Memasang FastAPI dan kebergantungannya

Sekarang, mari pasang FastAPI dan Uvicorn (pelayan ASGI):

pip install fastapi uvicorn

IV. Mencipta aplikasi FastAPI asas

A. Menulis skrip FastAPI pertama

Buat fail baharu bernama main.py dan tambah kod berikut:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def root():
    return {"message": "Hello, FastAPI!"}

B. Penerangan tentang struktur kod

  • Kami mengimport FastAPI daripada modul fastapi.
  • Kami mencipta contoh FastAPI yang dipanggil apl.
  • Kami mentakrifkan laluan menggunakan penghias @app.get("/"), yang memberitahu FastAPI bahawa fungsi di bawah mengendalikan permintaan GET ke URL akar ("/").
  • Fungsi async def root(): ialah pengendali laluan kami, yang mengembalikan objek JSON.

C. Menjalankan aplikasi FastAPI menggunakan Uvicorn

Untuk menjalankan aplikasi, gunakan arahan berikut:

uvicorn main:app --reload

Arahan ini memberitahu Uvicorn untuk:

  • Look for an app object in main.py
  • Run it as an ASGI application
  • Watch for file changes and reload the server (--reload option)

D. Accessing the automatic API documentation (Swagger UI)

Once your server is running, you can access the automatic API documentation by navigating to http://127.0.0.1:8000/docs in your web browser.

V. Defining the project structure

A. Creating a new directory for the Todo App

Create a new directory for your project:

mkdir fastapi-todo-app
cd fastapi-todo-app

B. Setting up a basic project structure

Create the following files in your project directory:

  1. main.py (entry point)
  2. requirements.txt
  3. .gitignore

C. Explaining the purpose of each file and directory

  • main.py: This is the main entry point of our application where we define our FastAPI app and routes.
  • requirements.txt: This file lists all the Python packages required for our project.
  • .gitignore: This file specifies which files and directories should be ignored by Git version control.

Add the following to your requirements.txt:

fastapi
uvicorn

And add this to your .gitignore:

__pycache__
*.pyc
todo-env/

VI. Implementing a simple "Hello, World!" endpoint

A. Creating a root endpoint

We've already created a root endpoint in our main.py. Let's modify it slightly:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def root():
    return {"message": "Welcome to the Todo App!"}

B. Returning a JSON response

FastAPI automatically converts the dictionary we return into a JSON response.

C. Testing the endpoint using a web browser

Run your server with uvicorn main:app --reload, then navigate to http://127.0.0.1:8000 in your web browser. You should see the JSON response.

D. Using the interactive API documentation

Navigate to http://127.0.0.1:8000/docs to see the Swagger UI documentation for your API. You can test your endpoint directly from this interface.

VII. Next steps

In the upcoming blog post, we will explore FastAPI in more detail by developing the fundamental features of our Todo App. We will establish endpoints for adding, retrieving, updating, and deleting todos. As an exercise, you can add a new endpoint that provides the current date and time when accessed.

@app.get("/current-time")  
async def get_current_time():  
    current_time = datetime.now()  
    return {  
        "current_date": current_time.strftime("%Y-%m-%d"),  
        "current_time": current_time.strftime("%H:%M:%S"),  
        "timezone": current_time.astimezone().tzname()  
    }

VIII. Conclusion

Congratulations! You've successfully set up your development environment, created your first FastAPI application, and learned about the basic structure of a FastAPI project.

We've covered a lot of ground in this post. We've discussed what FastAPI is and why it's a great choice for our Todo App. We've also written our first endpoint and run our application.

In the next post, we'll start building the core functionality of our Todo App. Stay tuned, and happy coding!

If you would like to support me or buy me a beer feel free to join my Patreon jamesbmour

Atas ialah kandungan terperinci Apl Todo FastAPI: Menyediakan Projek Apl Todo Anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn