


Bagaimana untuk melaksanakan sambungan pangkalan data dan pemprosesan transaksi dalam FastAPI
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.
- 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
- 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()
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.
- 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)
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.
- 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
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!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



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

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? 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# 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, 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

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.

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