Создание динамических URL-адресов в Flask

Создание динамических URL-адресов в Flask Изучение

При создании приложения жестко запрограммировать каждый URL-адрес довольно сложно. Лучший способ решить эту проблему — создать динамические URL-адреса. Давайте сначала вкратце разберемся в значении нескольких общих терминов.

  • Динамическая маршрутизация: это процесс получения динамических данных (имен переменных) в URL-адресе и их последующего использования.
  • Правила для переменных: разделы переменных могут быть добавлены к URL-адресу, помечая разделы с помощью .

Давайте сначала создадим базовое приложение фляги:

#importing the flask Module
from flask import Flask
 
# Flask constructor takes the name of
# current module (__name__) as argument
app = Flask(__name__)
 
@app.route('/')
# ‘/’ URL is bound with hello_world() function.
def home():
    return 'You are at home page.'
 
@app.route('/allow')
def allow():
    return 'You have been allowed to enter.'
 
@app.route('/disallow')
def disallow():
    return 'You have not been allowed to enter.'
 
# main driver function
if __name__ == '__main__':
    # run() method of Flask class runs the application
    # on the local development server.
    app.run()

Выход:

Теперь рассмотрим ситуацию, когда у вас много пользователей

Теперь рассмотрим ситуацию, когда у вас много пользователей, и вы хотите направить пользователя на определенную страницу с его или ее именем или идентификатором в URL-адресе, а также в шаблоне. Если вы попытаетесь сделать это вручную, вам придется вручную вводить полный URL-адрес для каждого пользователя. Это может быть очень утомительно и почти невозможно. Однако это можно решить, используя флягу с так называемой динамической маршрутизацией.

Динамическая маршрутизация

Теперь мы рассмотрим лучший подход с использованием правил для переменных. Мы добавим <имя переменной> к каждому маршруту. При желании мы также можем определить преобразователь с именем каждой переменной <преобразователь: имя переменной>. По умолчанию конвертер — String.

Пример:

@app.route('allow/<variable name>')

OR

@app.route('allow/<converter: variable name>')

Некоторые преобразователи:

Читайте также:  Интеграция Razorpay в Django
String (default) accepts any text without a slash
int accepts positive integers
float accepts positive floating point values
path like string but also accepts slashes
uuid accepts UUID strings

Разрешим пользователю с идентификатором менее 25 посещать страницу. Ниже приведен модифицированный код с динамической привязкой URL. Функция использует в качестве аргумента <имя переменной>, переданное в декораторе route ().

@app.route('/allow/<int:Number>')
def allow(Number):
    if Number < 25:
        return f'You have been allowed to enter beause\
         your number is {str(Number)}'
    else:
       return f'You are not allowed'
#importing the flask Module
from flask import Flask
 
# Flask constructor takes the name of
# current module (__name__) as argument
app = Flask(__name__)
 
@app.route('/')
# ‘/’ URL is bound with hello_world() function.
def home():
    return 'You are at home page.'
 
# Use of <conerter: variable name> in the 
# route() decorator.
@app.route('/allow/<int:Number>')
def allow(Number):
    if Number < 25:
        return f'You have been allowed to enter beause your number is {str(Number)}'
    else:
       return f'You are not allowed'
 
# main driver function
if __name__ == '__main__':
    # run() method of Flask class runs the application
    # on the local development server.
    app.run()

Выход:

Теперь рассмотрим ситуацию, когда у вас много пользователей

Оцените статью
bestprogrammer.ru
Добавить комментарий