Rumah pembangunan bahagian belakang Tutorial Python Bagaimana untuk melaksanakan sambungan pangkalan data dan pemprosesan transaksi dalam FastAPI

Bagaimana untuk melaksanakan sambungan pangkalan data dan pemprosesan transaksi dalam FastAPI

Jul 30, 2023 am 11:45 AM
pemprosesan transaksi fastapi Sambungan pangkalan data

Cara melaksanakan sambungan pangkalan data dan pemprosesan transaksi dalam FastAPI

Pengenalan:
Dengan perkembangan pesat aplikasi web, sambungan pangkalan data dan pemprosesan transaksi telah menjadi topik yang sangat penting. FastAPI ialah rangka kerja web Python berprestasi tinggi yang disukai oleh pembangun kerana kelajuan dan kemudahan penggunaannya. Dalam artikel ini, kami akan memperkenalkan cara melaksanakan sambungan pangkalan data dan transaksi dalam FastAPI untuk membantu anda membina aplikasi web yang boleh dipercayai dan cekap.

Bahagian Pertama: Sambungan Pangkalan Data
Dalam FastAPI, pelbagai alatan sambungan pangkalan data boleh digunakan, seperti SQLAlchemy dan Tortoise-ORM. Kami akan menggunakan SQLAlchemy sebagai contoh untuk menunjukkan.

  1. Pasang SQLAlchemy dan Pemacu MySQL
    Pertama, kita perlu memasang perpustakaan SQLAlchemy dan pemacu MySQL yang sepadan. Anda boleh memasangnya menggunakan arahan berikut:
pip install sqlalchemy
pip install mysql-connector-python
Salin selepas log masuk
  1. Buat sambungan pangkalan data
    Dalam aplikasi FastAPI, kita boleh membuat sambungan pangkalan data dalam aplikasi utama dan menyuntiknya ke dalam pengendali laluan. Berikut ialah contoh kod:
from fastapi import Depends, FastAPI
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm.session import Session

app = FastAPI()

SQLALCHEMY_DATABASE_URL = "mysql+mysqlconnector://user:password@localhost/db_name"

engine = create_engine(
    SQLALCHEMY_DATABASE_URL,
    pool_size=10,
    max_overflow=20
)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
Base = declarative_base()

async def get_db() -> Session:
    try:
        db = SessionLocal()
        yield db
    finally:
        db.close()
Salin selepas log masuk

Dalam kod di atas, kami mula-mula mencipta URL sambungan pangkalan data, dan kemudian menggunakan fungsi create_engine SQLAlchemy untuk mencipta enjin pangkalan data. Seterusnya, kami mentakrifkan kelas SessionLocal untuk mengekalkan sesi pangkalan data. Akhir sekali, kami mencipta fungsi kebergantungan get_db yang akan mengembalikan contoh sesi pangkalan data untuk digunakan dalam setiap pengendali permintaan.

Bahagian 2: Pemprosesan Transaksi
Dalam FastAPI, pemprosesan transaksi boleh digunakan untuk memastikan atomicity dan konsistensi operasi pangkalan data. Di bawah ialah beberapa contoh kod yang menunjukkan cara menggunakan transaksi dengan FastAPI.

  1. Menyuntik sesi pangkalan data menggunakan dependencies
    Kami akan terus menggunakan fungsi kebergantungan get_db yang kami buat sebelum ini dalam contoh ini dan menyuntik sesi pangkalan data dalam pengendali laluan.
from fastapi import Depends, FastAPI
from sqlalchemy.orm import Session
from .models import User
from .crud import create_user
from .database import get_db

app = FastAPI()

@app.post("/users/")
async def create_user_handler(user: User, db: Session = Depends(get_db)):
    return create_user(db=db, user=user)
Salin selepas log masuk

Dalam kod di atas, kami telah menentukan pengendali laluan create_user_handler yang menerima objek pengguna dan sesi pangkalan data sebagai parameter. Dalam pengendali ini, kami memanggil fungsi yang dipanggil create_user yang akan mencipta pengguna baharu dalam pangkalan data.

  1. Melaksanakan pemprosesan transaksi
    Berikut ialah kod contoh fungsi create_user, yang menunjukkan cara menggunakan pemprosesan transaksi dalam sesi pangkalan data:
from sqlalchemy.orm import Session
from .models import User

def create_user(db: Session, user: User):
    try:
        db.begin()
        db.add(user)
        db.commit()
        db.refresh(user)
        return user
    except:
        db.rollback()
        raise
Salin selepas log masuk

Dalam kod di atas, kami mula-mula memulakan transaksi menggunakan db.begin( ) kenyataan . Kami kemudian menambah objek pengguna pada sesi pangkalan data menggunakan pernyataan db.add(). Seterusnya, kami melakukan transaksi ke pangkalan data menggunakan pernyataan db.commit(). Jika ralat berlaku semasa proses komit, kami menggunakan pernyataan db.rollback() untuk melancarkan transaksi. Akhir sekali, kami menyegarkan objek pengguna menggunakan pernyataan db.refresh() untuk memastikan ia mengandungi nilai kunci utama yang dijana dalam pangkalan data.

Kesimpulan:
Dalam artikel ini, kami memperkenalkan cara melaksanakan sambungan pangkalan data dan pemprosesan transaksi dalam FastAPI. Kami mula-mula mencipta sambungan pangkalan data menggunakan SQLAlchemy dan kemudian menggunakan fungsi kebergantungan untuk menyuntik sesi pangkalan data ke dalam pengendali laluan. Seterusnya, kami menunjukkan cara menggunakan transaksi dalam sesi pangkalan data untuk menjamin atomicity dan konsistensi operasi pangkalan data. Dengan mempelajari dan mempraktikkan teknik ini, anda akan dapat membina aplikasi web yang boleh dipercayai dan cekap.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan sambungan pangkalan data dan pemprosesan transaksi dalam FastAPI. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bina aplikasi web antarabangsa menggunakan rangka kerja FastAPI Bina aplikasi web antarabangsa menggunakan rangka kerja FastAPI Sep 29, 2023 pm 03:53 PM

Gunakan rangka kerja FastAPI untuk membina aplikasi Web antarabangsa FastAPI ialah rangka kerja Web Python berprestasi tinggi yang menggabungkan anotasi jenis Python dan sokongan tak segerak berprestasi tinggi untuk menjadikan pembangunan aplikasi Web lebih mudah, lebih pantas dan lebih dipercayai. Apabila membina aplikasi Web antarabangsa, FastAPI menyediakan alatan dan konsep yang mudah yang boleh menjadikan aplikasi menyokong berbilang bahasa dengan mudah. Di bawah saya akan memberikan contoh kod khusus untuk memperkenalkan cara menggunakan rangka kerja FastAPI untuk membina

Flask vs FastAPI: Pilihan terbaik untuk pembangunan API Web yang cekap Flask vs FastAPI: Pilihan terbaik untuk pembangunan API Web yang cekap Sep 27, 2023 pm 09:01 PM

FlaskvsFastAPI: Pilihan terbaik untuk pembangunan WebAPI yang cekap Pengenalan: Dalam pembangunan perisian moden, WebAPI telah menjadi bahagian yang sangat diperlukan. Mereka menyediakan data dan perkhidmatan yang membolehkan komunikasi dan saling kendali antara aplikasi yang berbeza. Apabila memilih rangka kerja untuk membangunkan WebAPI, Flask dan FastAPI ialah dua pilihan yang telah menarik banyak perhatian. Kedua-dua rangka kerja sangat popular dan masing-masing mempunyai kelebihan tersendiri. Dalam artikel ini, kita akan melihat Fl

Django, Flask dan FastAPI: Rangka kerja manakah yang sesuai untuk pemula? Django, Flask dan FastAPI: Rangka kerja manakah yang sesuai untuk pemula? Sep 27, 2023 pm 09:06 PM

Django, Flask dan FastAPI: Rangka kerja manakah yang sesuai untuk pemula? Pengenalan: Dalam bidang pembangunan aplikasi web, terdapat banyak rangka kerja Python yang sangat baik untuk dipilih. Artikel ini akan menumpukan pada tiga rangka kerja yang paling popular, Django, Flask dan FastAPI. Kami akan menilai ciri mereka dan membincangkan rangka kerja yang terbaik untuk digunakan oleh pemula. Pada masa yang sama, kami juga akan menyediakan beberapa contoh kod khusus untuk membantu pemula lebih memahami rangka kerja ini. 1. Django: Django

Sambungan pangkalan data biasa dan masalah membaca dan menulis data dalam C# Sambungan pangkalan data biasa dan masalah membaca dan menulis data dalam C# Oct 10, 2023 pm 07:24 PM

Sambungan pangkalan data biasa dan masalah membaca dan menulis data dalam C# memerlukan contoh kod khusus Dalam pembangunan C#, sambungan pangkalan data dan membaca dan menulis data adalah masalah yang sering dihadapi oleh masalah ini adalah kunci untuk memastikan kualiti dan prestasi kod. Artikel ini akan memperkenalkan beberapa sambungan pangkalan data biasa dan masalah membaca dan menulis data, serta menyediakan contoh kod khusus untuk membantu pembaca memahami dan menyelesaikan masalah ini dengan lebih baik. Isu sambungan pangkalan data 1.1 Ralat rentetan sambungan Apabila menyambung ke pangkalan data, ralat biasa ialah rentetan sambungan tidak betul. Rentetan sambungan mengandungi sambungan ke pangkalan data

Django, Flask dan FastAPI: Pilih yang paling sesuai dengan keperluan pembangunan anda Django, Flask dan FastAPI: Pilih yang paling sesuai dengan keperluan pembangunan anda Sep 29, 2023 am 10:49 AM

Django, Flask dan FastAPI: Pilih yang paling sesuai dengan keperluan pembangunan anda, contoh kod khusus yang diperlukan Pengenalan: Dalam pembangunan web moden, memilih rangka kerja yang betul adalah penting. Memandangkan Python terus berkembang dalam bidang pembangunan web, rangka kerja seperti Django, Flask dan FastAPI menjadi semakin popular di kalangan pembangun. Artikel ini akan memperkenalkan ciri dan senario yang boleh digunakan bagi ketiga-tiga rangka kerja ini, digabungkan dengan contoh kod khusus, untuk membantu anda memilih rangka kerja yang paling sesuai dengan keperluan pembangunan anda. 1. D

Mengapa sambungan pangkalan data PHP saya gagal? Mengapa sambungan pangkalan data PHP saya gagal? Jun 05, 2024 pm 07:55 PM

Sebab kegagalan sambungan pangkalan data PHP termasuk: pelayan pangkalan data tidak berjalan, nama hos atau port yang salah, bukti kelayakan pangkalan data yang salah, atau kekurangan kebenaran yang sesuai. Penyelesaian termasuk: memulakan pelayan, menyemak nama hos dan port, mengesahkan kelayakan, mengubah suai kebenaran dan melaraskan tetapan tembok api.

Bagaimana untuk mengkonfigurasi sambungan pangkalan data dalam mybatis Bagaimana untuk mengkonfigurasi sambungan pangkalan data dalam mybatis Jan 15, 2024 pm 02:12 PM

Kaedah sambungan pangkalan data konfigurasi Mybatis: 1. Tentukan sumber data 2. Konfigurasikan pengurus transaksi 3. Konfigurasi pemproses jenis dan pemeta 4. Gunakan elemen persekitaran; Pengenalan terperinci: 1. Tentukan sumber data Dalam fail "mybatis-config.xml", anda perlu mengkonfigurasi sumber data Sumber data ialah antara muka, yang menyediakan sambungan pangkalan data kenormalan urus niaga pangkalan data Untuk pemprosesan, anda juga perlu mengkonfigurasi pengurus urus niaga 3. Konfigurasi pemproses jenis dan pemeta, dsb.

Sambungan pangkalan data PHP lanjutan: urus niaga, kunci dan kawalan konkurensi Sambungan pangkalan data PHP lanjutan: urus niaga, kunci dan kawalan konkurensi Jun 01, 2024 am 11:43 AM

Sambungan pangkalan data PHP lanjutan melibatkan urus niaga, kunci dan kawalan serentak untuk memastikan integriti data dan mengelakkan ralat. Transaksi ialah unit atom bagi satu set operasi, diuruskan melalui kaedah beginTransaction(), commit(), dan rollback(). Kunci menghalang akses serentak kepada data melalui PDO::LOCK_SHARED dan PDO::LOCK_EXCLUSIVE. Kawalan konkurensi menyelaraskan akses kepada berbilang transaksi melalui tahap pengasingan MySQL (baca tanpa komitmen, baca komited, baca berulang, bersiri). Dalam aplikasi praktikal, urus niaga, kunci dan kawalan konkurensi digunakan untuk pengurusan inventori produk di tapak web beli-belah untuk memastikan integriti data dan mengelakkan masalah inventori.

See all articles