Вызов нескольких функций после нажатия кнопки «Отправить» - PullRequest
0 голосов
/ 21 сентября 2019

Я новичок в Django и python, у меня есть различные функции, сделанные в python, которые я хочу запустить после нажатия кнопки отправки (очевидно, получая входные данные из формы), а затем показать результаты на аналогичной или, возможно, новой странице.

Правильное руководство и псевдокод помогут мне достичь этого.

Спасибо.

Фрагмент кода Python:

def func1():
     .....
func1()

def func2():
     .....
func2()

Форма Django:

enter URL : 
Submit

теперь, после того, как кто-то нажмет на кнопку отправки, я хочу показать результаты func1 и func2 вместе.

Ответы [ 3 ]

1 голос
/ 21 сентября 2019

вы можете создать другую функцию и в этом вызывать все другие функции, которые вы хотите.например:

def func():
   func1()
   func2()
   func3()
   func4()

, тогда вы можете просто вызвать func () в своем коде!таким образом, вы можете легко вызвать несколько функций и поместить их в одну категорию

0 голосов
/ 22 сентября 2019

Что-то похожее, но ваш вопрос неоднозначен и должен быть гораздо более конкретным.

   def called_on_sumbit(request):   
     if request.method == 'POST':
            form = MyForm(request.POST)
            if form.is_valid():
                callme()

        def function1():
            return x
        def function 2():
            return y

         def callme():
            answer1 = function1()
            answer2 = function2()
                return
0 голосов
/ 21 сентября 2019

Предположим, у вас есть форма MyForm и функции func1 () и func2 (), которые возвращают какое-то значение, вы можете попробовать что-то вроде следующего.

#views.py
from django.shortcuts import render

from .forms import MyForm

def get_name(request):
    # if this is a POST request we need to process the form data
    if request.method == 'POST':
        form = MyForm(request.POST)
        if form.is_valid():
            myContext={}
            myContext['res1']=func1() #Your custom functions
            myContext['res2']=func2() #Pass any arguments needed by the function
            return render(None, template='yourResultPage.html', context=myContext)


    else:
        form = MyForm()

    return render(request, 'formpage.html', {'form': form})

Обратите внимание, что использование render после отправки формы не рекомендуется, и вместо этого следует предпочесть перенаправление и использование инфраструктуры сообщений.

...