#python #flask #web
Вопрос:
Я хочу разработать веб-приложение с помощью flask, поэтому я начал его изучать.
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
В этом фрагменте кода для чего именно это @app.route("/")
нужно?
В своем приложении я создал форму, которая получает такие данные, как имя, класс и раздел, и сохраняет их в базе данных sql. Вот код:
from flask import Flask, render_template, request, url_for, flash, redirect
import sqlite3
app = Flask(__name__)
@app.route('/')
def index():
return render_template('Main.html')
@app.route('/addrec',methods = ['POST', 'GET'])
def addrec():
if request.method == 'POST':
std = request.form['class']
section = request.form['Section'].lower()
Alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
if section not in Alphabet:
return render_template("NoSuchSection.html")
В этом я могу заметить, что над addrec() есть @app.route('/addrec',methods = ['POST', 'GET'])
.
Так что же @app.route()
это такое и для чего все его использование в колбе ?
(Я хочу понять его использование, потому что после этого только я смогу эффективно использовать его в своих проектах)
Я видел подобные вопросы, но не могу их понять
Комментарии:
1. Вы должны были сделать быстрый запуск : «Затем мы используем декоратор маршрута (), чтобы сообщить Flask, какой URL-адрес должен запускать нашу функцию».
2. Спасибо @KlausD. Я прочитаю документацию по колбе, чтобы понять это.
3. Что это за URL-адрес «/» ?
4.
/
по умолчанию используется для домашней страницы. Когда вы запустите приложение flask и нажмете URL-адрес в браузере, вы попадете на URL домашней страницы , этот/
маршрут5. Ну, я не полностью знаю python, поэтому документация была слишком сложной для моего понимания. Вот почему я задал этот вопрос на этом сайте. (Я не ожидал получить ответ здесь так скоро) Спасибо, что уделили мне время.
Ответ №1:
route()
это декоратор в flask, который сообщает о пути/URL-адресе в вашем приложении. Какой бы путь вы ни хотели использовать в своем приложении, вы должны указать его в route()
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home_page():
return 'hompage'
@app.route('/user')
def user():
return 'user_page'
@app.route('/shopping')
def shopping():
return 'shopping'
if __name__ == '__main__':
app.run()
Это очень простой пример. Здесь в вашем приложении есть три разных пути/URL /user
-адреса, /shopping
и /
это означает домашнюю страницу.
Когда вы запустите свое приложение, ваш сервер предоставит вам какой-нибудь URL-адрес, где это приложение для колбы будет служить чему-то вроде Running on http://127.0.0.1:5000/
поэтому, когда вы нажмете http://127.0.0.1:5000/
, он приведет вас на очень домашнюю страницу из-за /
пути, и вы увидите homepage
сообщение в своем браузере.
аналогично , когда вы нажмете http://127.0.0.1:5000/users
, вы увидите user_page
сообщение в своем браузере, как /user
только путь был выбран
Ответ №2:
Их называют декораторами. Это особая функциональность. В Flask app.route () — это то, каким вы хотите видеть свой URL-адрес.
Например:
@app.route(‘/hello’)
Было бы для http://yourdomain.com/hello или http://127.0.0.1:5000/hello На каком бы веб-сайте вы ни запускали сервер.
Вы можете узнать больше о декораторах здесь: https://realpython.com/primer-on-python-decorators/