Python Flask — перенаправление и ошибки

Могу ли я стать полноценным разработчиком Python Программирование и разработка

В этой статье мы обсудим редиректы и ошибки с Python Flask. Перенаправление используется в классе Flask для отправки пользователя на определенный URL-адрес с кодом состояния. и наоборот, этот код состояния дополнительно идентифицирует проблему. Когда мы обращаемся к веб-сайту, наш браузер отправляет запрос на сервер, и сервер отвечает так называемым кодом состояния HTTP, который представляет собой трехзначное число. Различные причины ошибок:

  • Несанкционированный доступ или плохой запрос.
  • Неподдерживаемые типы медиафайлов.
  • Перегрузка внутреннего сервера.
  • Внутренняя ошибка оборудования/соединения.

Синтаксис перенаправления

flask.redirect(location,code=302)

Параметры:

location(str): местоположение, на которое ведет URL.

code(int): код состояния для перенаправления.

Code: код по умолчанию — 302, что означает, что перемещение является временным.

Возврат: объект ответа и перенаправляет пользователя в другое целевое местоположение с указанным кодом.

Различные типы HTTP-кодов:

Code Status
300 Multiple_choices
301 Moved_permanently
302 Found
303 See_other
304 Not_modified
305 Use_proxy
306 Reserved
307 Temporary_redirect

Импортируйте атрибут перенаправления

Мы можем перенаправить URL-адрес с помощью Flask, импортировав redirect. Давайте посмотрим, как импортировать перенаправления из Flask.

Python3

from flask import redirect

Пример:

Давайте рассмотрим простой пример перенаправления URL-адреса с помощью фляги с именем app.py.

Python3

# importing redirect
from flask import Flask, redirect, url_for, render_template, request
 
# Initialize the flask application
app = Flask(__name__)
 
# It will load the form template which 
# is in login.html
@app.route('/')
def index():
    return render_template("login.html")
 
 
@app.route('/success')
def success():
    return "logged in successfully"
 
# loggnig to the form with method POST or GET
@app.route("/login", methods=["POST", "GET"])
def login():
   
    # if the method is POST and Username is admin then
    # it will redirects to success url.
    if request.method == "POST" and request.form["username"] == "admin":
        return redirect(url_for("success"))
 
    # if the method is GET or username is not admin,
    # then it redirects to index method.
    return redirect(url_for('index'))
 
 
if __name__ == '__main__':
    app.run(debug=True)

login.html

Создайте папку с именем templates. В шаблонах создает файл templates/ login.html. На этой странице мы получим от пользователя его имя пользователя.

HTML

<!DOCTYPE html>
<html lang="en">
   <body>
      <form method="POST", action="\login">
         Username: <input  name=username type=text></input><br>
         <button type="submit">Login</button>
      </form>
   </body>
</html>

Теперь мы развернем наш код.

python app.py

Выход:

Если имя пользователя — admin

Случай 1: Если имя пользователя — admin, а метод — POST, тогда он будет перенаправлен на URL-адрес успеха и отобразит успешное выполнение входа.

POST, тогда он будет перенаправлен на URL-адрес

Случай 2: В другом случае, если имя пользователя похоже на xyz или что-то в этом роде, оно будет перенаправлено на метод index, т. е. снова загрузит форму, пока имя пользователя не станет admin.

В другом случае, если имя пользователя похоже на xyz или что-то в этом роде

Flasks Errors

Если в адресе есть ошибка или такого URL нет, то во Flask есть функция abort(), используемая для выхода с кодом ошибки.

Синтаксис метода abort()

Синтаксис: abort(код, сообщение)

  • code: int, Параметр кода принимает любое из следующих значений
  • message: str, создайте свое собственное сообщение Ошибка.

Различные типы ошибок, которые мы можем прервать в приложении в вашем Flask.

Code Error
400 Bad request
401 Unauthenticated
403 Forbidden
404 Not Found
406 Not Acceptable
415 Unsupported Media Type
429 Too Many Requests

Пример для демонстрации прерывания

В этом примере, если имя пользователя начинается с цифры, то будет передано сообщение с кодом ошибки, иначе в случае успеха будет напечатано «Хорошее имя пользователя».

Пример 1:

Python3

# importing abort
from flask import Flask, abort
 
# Initialize the flask application
app = Flask(__name__)
 
 
@app.route('/<uname>')
def index(uname):
    if uname[0].isdigit():
        abort(400)
    return '<h1>Good Username</h1>'
 
 
if __name__ == '__main__':
    app.run()

Выход:

Случай 1: если имя пользователя не начинается с цифры.

если имя пользователя не начинается с цифры

Случай 2: если имя пользователя начинается с цифры.

если имя пользователя начинается с цифры

Пример 2:

В приведенном выше коде Python код состояния для abort() равен 400, поэтому возникает ошибка неверного запроса. Попробуем изменить код на 403. Если имя пользователя начинается с цифры, возникает ошибка Forbidden Error.

Python3

# importing abort
from flask import Flask, abort
 
# Initialize the flask application
app = Flask(__name__)
 
 
@app.route('/<uname>')
def index(uname):
    if uname[0].isdigit():
        abort(403)
    return '<h1>Good Username</h1>'
 
 
if __name__ == '__main__':
    app.run()

Выход:

В приведенном выше коде Python код состояния для abort()

Читайте также:  Rollup.js : введение в сборщик JavaScript
Оцените статью
bestprogrammer.ru
Добавить комментарий