Чтобы создать форму звездного рейтинга в Flask, вы можете использовать различные методы. Вот несколько примеров кода:
-
Использование HTML и JavaScript:
HTML-шаблон (rating.html):<form action="/submit-rating" method="POST"> <div class="rating"> <input type="radio" id="star5" name="rating" value="5" /><label for="star5"></label> <input type="radio" id="star4" name="rating" value="4" /><label for="star4"></label> <input type="radio" id="star3" name="rating" value="3" /><label for="star3"></label> <input type="radio" id="star2" name="rating" value="2" /><label for="star2"></label> <input type="radio" id="star1" name="rating" value="1" /><label for="star1"></label> </div> <input type="submit" value="Submit" /> </form>Маршрут Flask (app.py):
from flask import Flask, render_template, request app = Flask(__name__) @app.route('/submit-rating', methods=['POST']) def submit_rating(): rating = request.form['rating'] # Process the rating here (e.g., save it to a database) return 'Rating submitted: ' + rating @app.route('/') def index(): return render_template('rating.html') if __name__ == '__main__': app.run() -
Использование Flask-WTF и WTForms:
Установите Flask-WTF с помощью pip:pip install Flask-WTFМаршрут Flask (app.py):
from flask import Flask, render_template from flask_wtf import FlaskForm from wtforms import RadioField from wtforms.validators import InputRequired app = Flask(__name__) app.config['SECRET_KEY'] = 'your-secret-key' class RatingForm(FlaskForm): rating = RadioField('Rating', choices=[('5', '5 stars'), ('4', '4 stars'), ('3', '3 stars'), ('2', '2 stars'), ('1', '1 star')], validators=[InputRequired()]) @app.route('/', methods=['GET', 'POST']) def index(): form = RatingForm() if form.validate_on_submit(): # Process the rating here (e.g., save it to a database) return 'Rating submitted: ' + form.rating.data return render_template('rating.html', form=form) if __name__ == '__main__': app.run()
Не забудьте создать в проекте каталог «шаблоны» и поместить в него файл «rating.html».