Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Ralat mengendalikan kemahiran dalam pembangunan web Python (Bahagian 2)

Ralat mengendalikan kemahiran dalam pembangunan web Python (Bahagian 2)

WBOY
WBOYasal
2023-06-17 08:15:151183semak imbas

Kemahiran pengendalian ralat dalam pembangunan web Python (Bahagian 2)

Dalam pembangunan web Python, pengendalian ralat adalah bahagian yang penting. Apabila aplikasi anda menghadapi ralat, tanpa pengendalian ralat yang betul, ia boleh menyebabkan aplikasi ranap atau halaman menjadi tidak responsif. Dalam artikel ini, kami akan terus memperkenalkan beberapa petua pengendalian ralat untuk pembangunan web Python untuk memastikan aplikasi anda masih berjalan seperti biasa apabila menghadapi ralat.

  1. Gunakan pernyataan cuba-kecuali untuk mengendalikan pengecualian

Dalam Python, pernyataan cuba-kecuali digunakan untuk mengendalikan pengecualian. Apabila aplikasi anda menghadapi ralat, ia membuang pengecualian dan menghentikan pelaksanaan. Walau bagaimanapun, menggunakan pernyataan cuba-kecuali membolehkan aplikasi anda menangkap pengecualian dan melaksanakan kod ganti apabila ralat ditemui.

Sebagai contoh, blok kod berikut menunjukkan cara menggunakan pernyataan try-except untuk mengendalikan pengecualian dalam aplikasi Flask Python:

try:
    # Some code that might raise an exception
except:
    # Code to be executed if an exception is raised

Dalam contoh kod di atas, pernyataan cuba mengandungi pengecualian yang mungkin dilemparkan kod. Jika pengecualian berlaku, pernyataan kecuali akan menangkap pengecualian dan melaksanakan kod sandaran yang ditentukan.

  1. Ralat pengelogan menggunakan modul pengelogan

Dalam Python, modul pengelogan ialah alat yang berkuasa untuk merekodkan peristiwa aplikasi. Dalam pembangunan web Python, penggunaan biasa modul pengelogan adalah untuk log ralat. Apabila aplikasi anda menghadapi ralat, ia log maklumat dalam fail log supaya anda boleh menyemak log untuk memahami punca ralat.

Berikut ialah contoh kod untuk ralat pengelogan menggunakan Kelalang Python dan modul pengelogan:

import logging
from flask import Flask

app = Flask(__name__)
app.logger.setLevel(logging.ERROR)

@app.route('/')
def index():
    try:
        # Some code that might raise an exception
    except Exception as e:
        app.logger.error('Error occurred: %s', e)
        return 'An error occurred. Please try again later.', 500

Dalam sampel kod di atas, pernyataan app.logger.setLevel(logging.ERROR) akan dilog aplikasi Tahap ditetapkan kepada tahap ERROR. Ini bermakna jika aplikasi anda menghadapi sebarang ralat, ia akan direkodkan dalam fail log.

Dalam pernyataan percubaan, anda boleh memasukkan pengecualian yang anda ingin tangkap dan log. Dalam kes ini, kami telah menggunakan kelas Pengecualian untuk menangkap semua kemungkinan pengecualian.

Akhir sekali, jika pengecualian berlaku dalam pernyataan cuba, pernyataan kecuali akan dimasukkan ke dalam log aplikasi dan mesej ralat akan dipaparkan kepada pengguna.

  1. Paparkan mesej ralat menggunakan Flask-Bootstrap dan Flask-WTF

Flask-Bootstrap dan Flask-WTF ialah dua sambungan Python Flask popular yang memudahkan pembangunan web . Antaranya, Flask-Bootstrap menyediakan anda set asas rangka kerja CSS untuk memudahkan anda mereka bentuk UI aplikasi anda. Flask-WTF menyediakan anda alat pemprosesan borang yang mudah digunakan.

Dalam pembangunan web Python, penggunaan biasa kedua-dua perpustakaan ini adalah untuk memaparkan mesej ralat. Apabila aplikasi anda menghadapi ralat, ia boleh menggunakan perpustakaan ini untuk memaparkan mesej ralat supaya pengguna memahami punca ralat dan mengambil tindakan yang sewajarnya.

Berikut ialah contoh kod yang menunjukkan cara memaparkan mesej ralat menggunakan Flask-Bootstrap dan Flask-WTF dalam aplikasi Python Flask:

from flask import Flask, render_template, redirect, url_for
from flask_bootstrap import Bootstrap
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField
from wtforms.validators import DataRequired, Email

app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret'
bootstrap = Bootstrap(app)

class LoginForm(FlaskForm):
    email = StringField('Email', validators=[DataRequired(), Email()])
    password = PasswordField('Password', validators=[DataRequired()])
    submit = SubmitField('Submit')

@app.route('/login', methods=['GET', 'POST'])
def login():
    form = LoginForm()
    if form.validate_on_submit():
        # Login logic here
        return redirect(url_for('profile', username=form.email.data))
    return render_template('login.html', form=form)

@app.errorhandler(404)
def page_not_found(e):
    return render_template('404.html'), 404

@app.errorhandler(500)
def internal_server_error(e):
    return render_template('500.html'), 500

Dalam sampel kod di atas, kami mentakrifkan Borang bernama LoginForm dan menggunakan Flask-Bootstrap untuk menggayakan borang. Dalam laluan /login, kami menggunakan LoginForm untuk mengesahkan data borang. Jika pengesahan borang berjaya, kami mengubah hala pengguna ke halaman profil mereka.

Dalam laluan page_not_found dan internal_server_error, kami menggunakan pengendali ralat Flask untuk mengendalikan ralat 404 dan 500. Dalam laluan ini, kami menggunakan Flask-Bootstrap untuk memaparkan mesej ralat mudah untuk memberitahu pengguna bahawa ralat telah berlaku.

Ringkasan

Pengendalian ralat ialah bahagian penting dalam pembangunan web Python. Dalam artikel ini, kami memperkenalkan beberapa teknik pengendalian ralat pembangunan web Python biasa, termasuk menggunakan pernyataan cuba-kecuali untuk mengendalikan pengecualian, menggunakan modul pengelogan untuk mengelog ralat dan menggunakan Flask-Bootstrap dan Flask-WTF untuk memaparkan mesej ralat. Dengan mempelajari teknik ini, anda boleh mengendalikan pengecualian dalam aplikasi anda dengan lebih baik dan memastikan aplikasi anda terus dilaksanakan apabila ralat ditemui.

Atas ialah kandungan terperinci Ralat mengendalikan kemahiran dalam pembangunan web Python (Bahagian 2). 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