【问题标题】:Calling multiple functions after clicking Submit button点击提交按钮后调用多个函数
【发布时间】:2019-09-21 14:50:08
【问题描述】:

我是 Django 和 python 的新手,我有各种用 python 编写的函数,我想在单击提交按钮后运行这些函数(显然是从表单中获取输入),然后在类似页面或新页面上显示结果。

适当的指导和伪代码将帮助我实现这一目标。

谢谢。

python代码sn-p:

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

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

Django 表单:

enter URL : 
Submit

现在有人点击提交后,我想同时显示 func1 和 func2 的结果。

【问题讨论】:

  • 请说明您目前是如何解决问题的。一个代码 sn-p 会很好。检查stackoverflow.com/help/how-to-ask
  • @AdityaAgrawal 完成,请立即查看
  • 如果您能提供一些您编写的代码来实现您的解决方案,那就太好了。不过,请在下面查看我的答案以了解解决问题的方法。

标签: python django python-3.x django-forms django-views


【解决方案1】:

您可以创建另一个函数,并在其中调用您想要的所有其他函数。 例如:

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

然后你可以在你的代码中调用 func() !这样你就可以轻松调用多个函数并将它们归入同一类

【讨论】:

    【解决方案2】:

    假设您有一个名为 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})
    

    请注意,不建议在提交表单后使用渲染,您应该更喜欢重定向并使用消息框架。

    【讨论】:

      【解决方案3】:

      类似的东西,但您的问题含糊不清,应该更具体。

         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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-05
        • 2016-07-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-21
        • 1970-01-01
        相关资源
        最近更新 更多