Django事件

Django事件,django,events,Django,Events,这可能是一个非常愚蠢的问题,但我在任何地方都找不到答案。我想知道你是如何处理Django的事件的。我在他们的网页上读了教程,我找不到任何解释,或者我错过了 我在ASP.NET webforms中工作,您可能知道,实现这一点的方法是将事件名称放入ASP.NET控件并调用特定的过程。我知道Django是一个非常不同的框架,因为它是MVC,但我快速浏览了ROR教程,我想我看到过他们使用类似于ASP.NET webforms的东西,如果我理解正确的话,比如在html界面中嵌入ruby代码并在那里声明一个

这可能是一个非常愚蠢的问题,但我在任何地方都找不到答案。我想知道你是如何处理Django的事件的。我在他们的网页上读了教程,我找不到任何解释,或者我错过了

我在ASP.NET webforms中工作,您可能知道,实现这一点的方法是将事件名称放入ASP.NET控件并调用特定的过程。我知道Django是一个非常不同的框架,因为它是MVC,但我快速浏览了ROR教程,我想我看到过他们使用类似于ASP.NET webforms的东西,如果我理解正确的话,比如在html界面中嵌入ruby代码并在那里声明一个动作,我想这会调用相应的函数,像这样的 ,它在控制器中调用函数“def action1:”,与asp.net类似(仅在这一意义上),但webforms不会呈现包含函数名称的视图


所以问题很简单,如何在Django中使用事件。我希望我至少有一点清楚,因为我很难用英语问这些问题,你可以在视图中这样做,这取决于request.POST字典的值

例如,假设HTML表单上有两个按钮,一个是
name=“submit”
,另一个是
name=“add”
。然后,在您看来,您可以执行以下操作:

if 'add' in request.POST:
    # do add action
elif 'submit' in request.POST:
    # do submit action

这正是管理应用程序管理“保存”、“保存并继续”和“保存并添加其他”按钮之间差异的方式。

您可以在视图中执行此操作,具体取决于request.POST字典的值

例如,假设HTML表单上有两个按钮,一个是
name=“submit”
,另一个是
name=“add”
。然后,在您看来,您可以执行以下操作:

if 'add' in request.POST:
    # do add action
elif 'submit' in request.POST:
    # do submit action
这正是管理应用程序管理“保存”、“保存并继续”和“保存并添加另一个”按钮之间差异的方式。

这种控制(文本框、按钮等)和页面事件的概念,正如您所描述的,并没有被大多数其他框架所继承。这一切都是微软试图使web开发体验与开发Windows应用程序的体验非常相似的努力的一部分——无论是好是坏

例如,在WebForms应用程序中:

button.Click += Button_Click;

private void Button_Click(object sender, EventArgs e)
{
    // handle action here
}
大致相当于(客户端,在模板中):

换句话说,在Django和其他MVC框架中,您想要做的是在控制器类(或Django中的视图函数)上有唯一的“操作”或方法。这些操作通常响应HTTP GET和POST请求

如果您想在控件上使用客户端事件,您需要考虑使用JavaScript框架,例如。

这种控件(文本框、按钮等)和页面事件的概念,按照您描述的方式,并没有被带入大多数其他框架。这一切都是微软试图使web开发体验与开发Windows应用程序的体验非常相似的努力的一部分——无论是好是坏

例如,在WebForms应用程序中:

button.Click += Button_Click;

private void Button_Click(object sender, EventArgs e)
{
    // handle action here
}
大致相当于(客户端,在模板中):

换句话说,在Django和其他MVC框架中,您想要做的是在控制器类(或Django中的视图函数)上有唯一的“操作”或方法。这些操作通常响应HTTP GET和POST请求


如果您想在控件上使用客户端事件,您需要考虑使用JavaScript框架,例如。

我以前是ASP.NET开发人员,几乎完全改用Django,因此我完全知道您在问什么

也许我能解释的最简单的方式是:你认为的“事件”是Django中的URL和视图。把你在ASP.NET中所做的事情抽象下来,这很有意义——你有一个控件,它只是页面上的一个元素。它被映射到一个事件,实际上只不过是一个函数。因此,您所做工作的模型如下所示:

object > method
object > url > method
在Django中,情况类似,但还有一个额外的步骤。ASP.NET自动将对象连接到方法。在Django,你需要自己去做。为此,您可以为该对象创建一个URL(URL.py),然后将该URL分配给一个视图(views.py),该视图实际上只是一个方法。在Django中,相同的模型如下所示:

object > method
object > url > method

在许多方面,它们实现了相同的最终效果——发生了一些事情,并由服务器上的方法处理。Django只是更开放一点,允许您配置它是如何发生的(并且需要您理解并自己处理)。

我以前是ASP.NET开发人员,几乎完全改用了Django,所以我完全知道您在问什么

也许我能解释的最简单的方式是:你认为的“事件”是Django中的URL和视图。把你在ASP.NET中所做的事情抽象下来,这很有意义——你有一个控件,它只是页面上的一个元素。它被映射到一个事件,实际上只不过是一个函数。因此,您所做工作的模型如下所示:

object > method
object > url > method
在Django中,情况类似,但还有一个额外的步骤。ASP.NET自动将对象连接到方法。在Django,你需要自己去做。为此,您可以为该对象创建一个URL(URL.py),然后将该URL分配给一个视图(views.py),该视图实际上只是一个方法。在Django中,相同的模型如下所示:

object > method
object > url > method

在许多方面,它们实现了相同的最终效果——发生了一些事情,并由服务器上的方法处理。Django只是稍微开放一点,让您可以配置它是如何发生的(并且需要您理解这一点并自己处理)。

事件?你的意思是发送表格等吗?:)你找不到解释的原因是“事件”不是Django的概念。你所说的“事件”是什么意思?你的意思是发送表格等吗?:)你找不到解释的原因是