Курсы javascript
Здравствуйте! Я не спец а javascript, а задачу, как я понимаю, реально решить только с его помощью.
Ситуация следующая: имеется восемь блоков с информацией, они генерируются django в шаблон. В каждом блоке есть кнопка, при нажатии на которую открывается funcybox окошко с информацией, какой блок выбрал пользователь и какие данные будут отправлены. После того, как пользователь подтверждает данные и нажимает кнопку в окне, мне нужно эти самые данные передать методом POST в скрипт на python.
В общем реализовал все, кроме передачи этих самых данных в скрипт, потому как полей в форме html нет, а данные надо как-то передать. Чувствую что тут можно спастись javascropt’ом.
Подскажите, как мне это сделать?
Получение переменной из js в python
У меня есть выпадающий список, выбранные элементы которого записываются в переменную, которую я вывожу в консоль. Такой вопрос: Как реализовать получение переменной( selectedItem.value ) из js во flask python ? app.py:
description = ['one','two','three','four','five','six'] @app.route('/', methods=['GET', 'POST']) def login(): if request.method == 'POST': docs = request.form.getlist('sel') return render_template('login.html', description=description) return render_template('login.html', description=description)
Полный код тут
Отслеживать
задан 5 июл 2020 в 6:46
655 3 3 серебряных знака 11 11 бронзовых знаков
Возможный дубликат вопроса: Кнопка вызова функции python flask – посмотрите в ответе раздел 2.3, там показана передача данных из JS в Python.
5 июл 2020 в 6:49
@AivanF., спасибо. т.е только с помощью ajax можно передать? я просто не понимаю как это в моем случае реализовать
5 июл 2020 в 6:54
да, точнее с помощью HTTP запросов, это (не считая WebSockets) единственный способ связи браузерной страницы и серверного кода. Данные можно и в большинстве случаев нужно передавать в формате JSON, для этого сформируйте JS объект с нужными серверу данными и кидайте через AJAX по URI пути, который будет обрабатываться сервером должным образом. А извлекать значения из
5 июл 2020 в 7:01
@AivanF., обновил с использованием AJAX . Можете посмотреть?
5 июл 2020 в 7:03
Что я говорил про обработчик?) На браузере отправляется запрос по адресу /login/ , но в серверном коде нет соответствующего @app.route . В общем, сейчас сделаю работающую версию.
5 июл 2020 в 7:06
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
from flask import Flask, request, render_template, jsonify app = Flask(__name__) description = ['one','two','three','four','five','six'] # Браузер обращается по пути "/", но с методом GET @app.route('/', methods=['GET']) def login(): if request.method == 'POST': docs = request.form.getlist('sel') return render_template('login.html', description=description) return render_template('login.html', description=description) # Из скрипта мы обращаемся по тому же пути, но методом POST @app.route('/', methods=['POST']) def login_post(): data = request.json print('Got data:', data) return jsonify(< 'status': 'SUCCESS', 'data': data, >) if __name__ == '__main__': app.run()
Как передать функцию как параметр в Python?
Поскольку функция в Python является объектом, ее можно передавать в другую функцию в качестве аргумента. При этом функция в аргументе указывается без круглых скобок, то есть передается только ссылка на функцию.
def calculate(a, b, operation): result = operation(a, b) return result def sum(a, b): return a + b def multiply(a, b) return a * b calculate(2, 3, sum) # 5 calculate(3, 4, multiply) # 12
Функции, которые могут принимать другие функции в качестве аргументов, также называются функциями высшего порядка. Яркий пример функции высшего порядка — функция map() , которая принимает аргументом функцию и итерируемую последовательность, и применяет функцию-параметр к каждому элементу последовательности.
Как из Node.js передать в скрипт Python?
Приветствую, у меня есть задача:
Передать объект нового пользователя в python script, если все ключи в объекте будут соответствовать требованиям, то скрипт вернет «OK», если же нет, то вернет определенную ошибку.
не знаю зачем, но вот мой web server на всякий случай:
const cors = require('cors'); const express = require('express'); const path = require('path'); const app = express(); const bodyParser = require('body-parser'); const sequelize = require('./database/database') const getUsersFromAccounts = require('./routes/getUsersFromAccounts') app.use(cors()); app.use(express.static(path.join(__dirname, 'dist'))); app.use(express.json()); app.use('/getUsersFromAccounts', getUsersFromAccounts); app.get('*', (req, res) => < res.sendFile(path.join(__dirname, 'dist/aat/index.html')) >); const port = process.env.PORT || 4000; async function start() < try < await sequelize.sync() app.listen(port, (req, res) =>< console.log(`Server running in port $`); >) > catch (e) < console.log(e); >> start();
Я понимаю, что мне нужно сделать post запрос и передать в контроллере данные в скрипт, но как это правильно пишется не понимаю. Может кто-то поделиться полезной инфой? Использую sequelize.
- Вопрос задан более двух лет назад
- 103 просмотра
1 комментарий
Простой 1 комментарий