Rumah >pembangunan bahagian belakang >Tutorial Python >Rangka kerja ORM Flask-SQLAlchemy dalam Python dalam amalan
ORM (Object-Relational Mapping) ialah teknologi pengaturcaraan yang memetakan data jadual dalam pangkalan data hubungan kepada objek dalam bahasa pengaturcaraan, membenarkan pembangun program mengendalikan pangkalan data dalam cara berorientasikan objek. Flask-SQLAlchemy ialah rangka kerja ORM yang berkuasa yang boleh memudahkan operasi program Python pada pangkalan data hubungan.
Artikel ini akan memperkenalkan penggunaan rangka kerja Flask-SQLAlchemy secara terperinci melalui contoh.
Sebelum mempelajari Flask-SQLAlchemy, kita perlu memasang modul Flask dan SQLAlchemy. Anda boleh memasangnya menggunakan arahan pip dalam persekitaran Python.
pip install Flask
pip install SQLAlchemy
Konfigurasikan pangkalan data MySQL sebagai storan berterusan projek, sebelum mencipta Flask -SQLAlchemy objek, hanya lulus parameter berikut:
dari Flask import Flask
dari flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:password@localhost:3306/test'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db> SQL🎜>db = SQL🎜>
Panggil app.config untuk menetapkan parameter konfigurasi contoh aplikasi Flask Parameter SQLALCHEMY_DATABASE_URI digunakan untuk menentukan jenis pangkalan data yang disambungkan, nama pengguna, kata laluan, alamat IP, nombor port, nama pangkalan data dan maklumat lain.daripada flask_sqlalchemy import SQLAlchemy
# 定义表名 __tablename__ = 'student' # 定义表结构,其中id为主键,自增长 id = db.Column(db.Integer, primary_key=True, autoincrement=True) name = db.Column(db.String(20), nullable=False) gender = db.Column(db.String(2), nullable=False) birthday = db.Column(db.Date, default=datetime.now()) address = db.Column(db.String(200), nullable=False) # 类对象序列化成字典 def to_dict(self): return {c.name: getattr(self, c.name, None) for c in self.__table__.columns}Dalam kelas Pelajar, kami mentakrifkan struktur jadual seperti __tablename__, id, nama, jantina, hari lahir dan alamat. Antaranya, __tablename__ digunakan untuk menentukan nama jadual, id digunakan untuk menentukan kunci utama dan berkembang secara automatik, dan nama medan, jantina, hari lahir dan alamat digunakan untuk menyimpan maklumat tentang nama pelajar, jantina, hari lahir dan alamat. Tambah, padam, ubah suai dan semak operasiSeterusnya, kami melaksanakan operasi tambah, padam, ubah suai dan semak: (1) Tambah maklumat pelajar@app.route(' /add', methods=['POST'])
def add_student():
student = Student() student.name = request.form.get('name') student.gender = request.form.get('gender') student.birthday = datetime.strptime(request.form.get('birthday'), '%Y-%m-%d').date() student.address = request.form.get('address') db.session.add(student) db.session.commit() return jsonify({'code': 200, 'msg': 'add student success.'})Mula-mula dapatkan data borang yang diserahkan melalui request.form.get(), kemudian buat objek Pelajar dan tetapkan nilai atribut, dan akhirnya tambahkan objek ke pangkalan data melalui db.session.add() dan lakukan transaksi melalui db.session.commit(). (2) Padamkan maklumat pelajar@app.route('/delete/3e2f7d559aac0f0aeba61111f4764f61', methods=['DELETE'])
def delete_student(id ):
student = Student.query.get(id) if student: db.session.delete(student) db.session.commit() return jsonify({'code': 200, 'msg': 'delete student success.'}) else: return jsonify({'code': 404, 'msg': 'student not found.'})Lulus parameter ID pelajar, dapatkan contoh pelajar melalui kaedah query.get() dan padamkannya daripada pangkalan data menggunakan kaedah db.session.delete() dan padamkannya daripada pangkalan data melalui db.session .commit() melakukan transaksi. (3) Ubah suai maklumat pelajar@app.route('/update/3e2f7d559aac0f0aeba61111f4764f61', methods=['PUT'])
def update_student(id ):
student = Student.query.get(id) if student: student.name = request.form.get('name') student.gender = request.form.get('gender') student.birthday = datetime.strptime(request.form.get('birthday'), '%Y-%m-%d').date() student.address = request.form.get('address') db.session.commit() return jsonify({'code': 200, 'msg': 'update student success.'}) else: return jsonify({'code': 404, 'msg': 'student not found.'})Begitu juga, dapatkan contoh pelajar berdasarkan parameter ID pelajar Selepas mengubah suai maklumat pelajar, gunakan db.session.commit() untuk menyerahkan transaksi. (4) Tanya maklumat pelajar@app.route('/search')
def search_student():
students = Student.query.all() if students: return jsonify({'code': 200, 'msg': 'search student success.', 'data': [student.to_dict() for student in students]}) else: return jsonify({'code': 404, 'msg': 'student not found.'})Gunakan kaedah query.all() Tanya semua maklumat pelajar dalam jadual Pelajar, dan gunakan pemahaman senarai untuk menukar senarai objek pelajar kepada senarai kamus dan mengembalikannya.
Atas ialah kandungan terperinci Rangka kerja ORM Flask-SQLAlchemy dalam Python dalam amalan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!