Форум программистов, компьютерный форум, киберфорум
Python: Flask
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
1 / 1 / 0
Регистрация: 06.04.2020
Сообщений: 5

Проект Flask +WEB

27.04.2021, 08:37. Показов 3703. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я занимаюсь проектом на тему Flask+WEB, долго бьюсь уже с этим, поэтому прошу подмоги у вас. Да возможно коды кошмарные, но не в этом суть. Я хотел после формы(второй код), сделать переадресацию на основной сайт(первый код).Заранее спасибо за любую помощь.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
from flask import Flask, url_for, request, jsonify
 
app = Flask(__name__)
 
 
@app.route('/form_sample', methods=['POST', 'GET'])
def form_sample():
    if request.method == 'GET':
        return f'''<!doctype html>
                        <html lang="en">
                          <head>
                            <meta charset="utf-16">
                            <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
                            <link rel="stylesheet"
                            href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.min.css"
                            integrity="sha384-giJF6kkoqNQ00vy+HMDP7azOuL0xtbfIcaT9wjKHr8RbDVddVHyTfAAsrekwKmP1"
                            crossorigin="anonymous">
                            <link rel="stylesheet" type="text/css" href="{url_for('static', filename='css/style.css')}"/>
                            <title>Книга рецептов</title>
                            </head>
                            <body>
                            <center><h1>Привет! Перечисли ингридиенты, которые хочешь использовать для приготовления своего блюда.</h1></center>
                            <h2></h2>
                            <h3><small><strong><strong>Закуски:</strong></strong> Яйца, Сыр, Зелень, Хлеб, Ветчина</h3></small>
                            <h4> <strong><strong>Основные блюда:</strong></strong> Рис, Мясо, Мука, Морковка, Лук, Макароны, Молоко</h4>
                            <h5><big><strong><strong>Десерты:</strong></strong> Мука, Молоко, Яйца, Шоколад, Сахар</h5></big>
                            <div>
                            <form class="login_form" method="post">
                            <input type="about" class="form-control" id="about" aria-describedby="emailHelp" placeholder="Введите ингридиенты" name="about">                                                                   
                                                                          
                                                                                                
                            <button type="submit" class="btn btn-primary">Отправить</button>
                            </form>
                            </div>
                          </body>
                        </html>'''
    elif request.method == 'POST': 
        new1 = str(request.form['about']).split()
        return jsonify(possible_recipes(myBook, new1))
 
myBook = [
        {"название": "Плов", "ингридиенты": ["Рис", "Мясо", "Лук", "Морковка"]},
        {"название": "Яичница", "ингридиенты": ["Яйца", "Подсолнечное масло"]},
        {"название": "Блины", "ингридиенты": ["Яйца", "Сливочное масло"]},
        {"название": "Брауни", "ингридиенты": ["Шоколад", "Мука", "Яйца", "Сливочное масло",  "Сахар"]},
        {"название": "Котлета", "ингридиенты": ["Мясо", "Яйца", "Молоко", "Хлеб",  "Лук", "Мука", "Сливочное масло"]},
        {"название": "Форель с лимонами", "ингридиенты": ["Форель", "Лимон", "Подсолнечное масло"]}
]
 
 
def proverka(BookDish, MyIngridients):
  res = []
  for i in range(len(BookDish)):
    flag = False
    for j in range(len(MyIngridients)):
      if(BookDish[i]==MyIngridients[j]):
        flag = True
        break
    if(flag == False):
      res.append(BookDish[i])      
  return res
 
 
def possible_recipes(myBook, MyIngridients):
    my_dict = [{'Блюдо': myBook[i]["название"], 'Добавь': proverka(myBook[i]["ингридиенты"], MyIngridients)} for i in range(len(myBook))]
    return my_dict
 
 
if __name__ == '__main__':
    app.run(port=8080, host='127.0.0.1')
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
from flask import Flask, url_for, request
import flask
 
app = Flask(__name__)
 
app.secret_key = 'something'
 
 
def validate_upload(f):
    def wrapper():
        if 'completed' not in flask.session or not flask.session['completed']:
            return flask.redirect('/')
        return f()
 
    return wrapper
 
 
@app.route('/', methods=['GET'])
def home():
    html = """
  <form action='/second' method = 'POST'>
    <input type='text' name='username'>
    <input type='password' name='password'>
    <input type='submit' value='Submit'>
  </form>
  """
    return html
 
 
@app.route('/second', methods=['POST'])
def second():
    username, password = flask.request.form['username'], flask.request.form['password']
    flask.session['username'] = username
    flask.session['password'] = password
    flask.session['completed'] = True
    return flask.redirect('/upload')
 
 
@app.route('/upload', methods=['GET'])
@validate_upload
def do_something():
    return flask.redirect('/form_sample')
 
 
@app.route('/form_sample', methods=['POST', 'GET'])
def form_sample():
    if request.method == 'GET':
        return f'''<!doctype html>
                        <html lang="en">
                          <head>
                            <meta charset="utf-8">
                            <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
                            <link rel="stylesheet"
                            href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.min.css"
                            integrity="sha384-giJF6kkoqNQ00vy+HMDP7azOuL0xtbfIcaT9wjKHr8RbDVddVHyTfAAsrekwKmP1"
                            crossorigin="anonymous">
                            <link rel="stylesheet" type="text/css" href="{url_for('static', filename='css/style.css')}" />
                            <title>Пример формы</title>
                          </head>
                          <body>
                            <h1>Форма для регистрации в суперсекретной системе</h1>
                            <div>
                                <form class="login_form" method="post">
                                    <input type="email" class="form-control" id="email" aria-describedby="emailHelp" placeholder="Введите адрес почты" name="email">
                                    <input type="password" class="form-control" id="password" placeholder="Введите пароль" name="password">
                                    <div class="form-group">
                                        <label for="classSelect">В каком вы классе</label>
                                        <select class="form-control" id="classSelect" name="class">
                                          <option>7</option>
                                          <option>8</option>
                                          <option>9</option>
                                          <option>10</option>
                                          <option>11</option>
                                        </select>
                                     </div>
                                    <div class="form-group">
                                        <label for="about">Немного о себе</label>
                                        <textarea class="form-control" id="about" rows="3" name="about"></textarea>
                                    </div>
                                    <div class="form-group">
                                        <label for="photo">Приложите фотографию</label>
                                        <input type="file" class="form-control-file" id="photo" name="file">
                                    </div>
                                    <div class="form-group">
                                        <label for="form-check">Укажите пол</label>
                                        <div class="form-check">
                                          <input class="form-check-input" type="radio" name="sex" id="male" value="male" checked>
                                          <label class="form-check-label" for="male">
                                            Мужской
                                          </label>
                                        </div>
                                        <div class="form-check">
                                          <input class="form-check-input" type="radio" name="sex" id="female" value="female">
                                          <label class="form-check-label" for="female">
                                            Женский
                                          </label>
                                        </div>
                                    </div>
                                    <div class="form-group form-check">
                                        <input type="checkbox" class="form-check-input" id="acceptRules" name="accept">
                                        <label class="form-check-label" for="acceptRules">Готов быть добровольцем</label>
                                    </div>
                                    <button type="submit" class="btn btn-primary">Записаться</button>
                                </form>
                            </div>
                          </body>
                        </html>'''
    elif request.method == 'POST':
        print(request.form['email'])
        print(request.form['password'])
        print(request.form['class'])
        print(request.form['file'])
        print(request.form['about'])
        print(request.form['accept'])
        print(request.form['sex'])
        return render_template('form_sample.html', name=name)
 
 
 
myBook = [
    {"name": "pilaf", "ingridients": ["Rice", "Meat", "Onion", "Carrot", "Oil", "Salt", "Pepper"]},
    {"name": "scrambled_eggs", "ingridients": ["Eggs", "Salt", "Oil"]},
    {"name": "pancakes", "ingridients": ["Eggs", "Butter"]},
    {"name": "brownie", "ingridients": ["Chocolate", "Flour", "Eggs", "Butter", "Sugar"]},
    {"name": "cutlet", "ingridients": ["Meat", "Eggs", "Milk", "Bread", "Onion", "Flour", "Oil"]},
    {"name": "trout", "ingridients": ["Trouts", "Salt", "lemon", "Pepper", "Oil"]}
]
 
 
def proverka(BookDish, MyIngridients):
    res = []
    for i in range(len(BookDish)):
        flag = False
        for j in range(len(MyIngridients)):
            if (BookDish[i] == MyIngridients[j]):
                flag = True
                break
        if (flag == False):
            res.append(BookDish[i])
    return res
 
 
# print(type(myBook[0]))
def possible_recipes(myBook, MyIngridients):
    for i in range(len(myBook)):
        print(myBook[i]["name"], proverka(myBook[i]["ingridients"], MyIngridients))
 
 
new1 = ["Rice", "Meat", "Onion", "Carrot", "Oil", "Salt", "Pepper"]
possible_recipes(myBook, new1)
 
# new2 = [ "Rice", "Meat", "Onion", "Carrot",  "Butter", "Salt"]
# print(proverka(new1, new2))
if __name__ == '__main__':
    app.run(port=8080, host='127.0.0.1')
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.04.2021, 08:37
Ответы с готовыми решениями:

Signals to web page (flask)
добрый день подскажите, пожалуйста, как реализовать сигнал от сервера к веб странице о результате завершения какого - то действия ...

Развернуть проект flask на ubuntu
Всем привет, есть flask проект и сервер ubuntu с ip и доменом. Есть более менее подробные инструкции как развернуть сайт на сервере, что бы...

Обновление web содержимого flask сервера
Добрый день, Принимаем Get запросы сервером и обрабатываем их, но при этом содержимое веб страницы не обновляется самостоятельно. Я не...

2
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
28.04.2021, 14:59
Python
1
2
3
4
5
6
from flask import redirect, url_for
 
# 1
redirect(url_for('form_sample'))
# 2
redirect('http://localhost:8080/form_sample')
0
2 / 0 / 2
Регистрация: 05.04.2021
Сообщений: 33
16.06.2021, 20:28
Сделай второй код Блупринтом и через него вызывай редирект на функцию через url_for

Добавлено через 1 минуту
И да кстати, не обижайся, но у тебя очень плохой код. Посмотри ролики на Ютубе по фласку и начни писать код лучше.

Добавлено через 3 минуты
И ещё очень интересно зачем ты разделил сайт на два файла
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.06.2021, 20:28
Помогаю со студенческими работами здесь

Python flask web поиск с обращением в бд mysql
добрый день! существует такой вопрос, как на питоне фласке сделать веб интерфейс поиска, который будет обращаться в бд(желательно flask...

Ошибка при запуске web-приложения на Python + Flask + MySQL
Здравствуйте! Запуская проект на Python + Flask + MySQL столкнулся вот с какой проблемой: при выполнении команды для запуска приложения...

Подключить PostgreSQL к Flask API и передавать данные таблицы в flask
Нужна срочная и большая помощь, надеюсь только на вас. Есть Python+QT5 (PYQT5) приложение. В таблицу приложения (QTableWidget)...

Доработать проект. Фрейм flask
Здравсвуйте. Есть на гитхабе проект https://github.com/jonthornton/wp2tumblr Скрипт обрабатывает xml и заливает данные в tumblr блог. ...

Развернуть проект flask на ubuntu
Всем привет, есть flask проект и сервер ubuntu с ip и доменом. Есть более менее подробные инструкции как развернуть сайт на сервере, что бы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru