Форум сайта python.su
Добрый день,
Поднял сервер flask (waitress), создал файл flserv.py, папки static и templates, в templates положил страницу index.html, в static положил картинки, style.css, jquery-3.4.1.js (это чтоб не нужно было c интернета подгружать его), main.js - файл со всеми моими скриптами. Сервер с waitress успешно запускается, отображает страницу, картинки, стили, но ни один js не отрабатывает. Даже просто создал кнопку при нажатии которой вылетает alert и даже это не работает. Все пути прописал и много раз уже менял, пробовал все варианты, читал stackoverflow…но не работает. Почему?
Офлайн
DessanНачни со страницы.
Даже просто создал кнопку при нажатии которой вылетает alert и даже это не работает.
<script>document.body.style.backgroundColor = "red";</script>
document.body.style.backgroundColor = "red";
Офлайн
Надо было мне вообще начать с чтения ошибок консоли, а не с поиска в интернете. Консоль ругалась на знак “$”. Как раз убрал весь jquery и чистый javascript отрабатывает отлично с подгрузкой js - файла. Как мне подключить jquery?
Спасибо за ответ!
Офлайн
Нашёл проблему…надо было ссылку на скаченный jquery поместить над ссылку исполнительно скрипта main.js и все стало работать.
Офлайн
Новая трудность.
Принимаем Get запросы сервером и обрабатываем их, но при этом содержимое веб страницы не обновляется самостоятельно. Я не понимаю, где происходить должна обработка Get запросов - в серверном файле питона или уже на странице html?
from flask import Flask, render_template, request from waitress import serve from flask_cors import CORS app = Flask(__name__) CORS(app) @app.route('/', methods=['GET', 'POST']) # def index(): if request.method == 'GET': username = request.args.get('username', '') password = request.args.get('password', '') print(username) print(password) return render_template("index.html", my_string="it works!", my_list=[0,1,2,3,4,5], username = username, password = password) if __name__ == "__main__": app.debug = True serve(app, host='192.168.0.103', port=5000)
<p>My string: {{my_string}}</p> <p>Value from the list: {{my_list[3]}}</p> <div id="log">Login:<div id="pass">0</div>here</div> <script> setInterval(function(){ $("#pass").html("<p>{{password}}</p>"); console.log("{{password}}") }, 5000); </script>
Отредактировано Dessan (Апрель 8, 2020 12:46:22)
Офлайн
Сделай шаблон без скрипта. Выведи пароль просто в шаблоне через {{password}}.
Офлайн
В том то и дело, что не выводится, ошибок не выдает. Я с одного компа на другой компьютер, где установлен сервер, отсылаю get запрос. И вот на тот комп с которого отправляю get запрос возвращается все содержимое страницы и там -то видно, что содержимое password вставлено в нужный тег, а на стороне сервера просто ничего нет.
Офлайн
DessanТо есть страница выводится с паролем?
И вот на тот комп с которого отправляю get запрос возвращается все содержимое страницы и там -то видно, что содержимое password вставлено в нужный тег
DessanНа какой стороне сервера? Что имеется в виду?
а на стороне сервера просто ничего нет
Офлайн
Я не знаю как ещё объяснить. Есть компьютер 1 и на нём стоит сервер питона с flask, waitress и html страницей. У сервера адрес 192.168.0.103:5000. Есть компьютер 2, который находится в локальной сети с компьютером 1 через роутер. С компьютера 2 отправляем get запрос
Get http://192.168.0.103:5000/?username=py.user&password=12345
Офлайн
DessanЕсли бы оно не сработало, ты бы ничего не увидел на компьютере, пославшем запрос.
и в response на компьютере 2 видим содержимое страницы сервера вместе с вставленными значениями username и password в нудных html тегах
DessanТак а где ты их смотришь?
а на компьютере 1 (сервере) мы не видим вставленные на странице html в нужных местах тегов username и password
DessanВ какую html-страницу, где она у тебя открыта?
хотя в консоле сервера компьютера 1 видим полностью наш запрос, а в html страницу сервера ничего не приходит
Отредактировано py.user.next (Апрель 13, 2020 02:02:24)
Офлайн