Python 在不使用django表单类的情况下清除输入字符串

Python 在不使用django表单类的情况下清除输入字符串,python,django,Python,Django,有没有一种推荐的方法可以使用Django在不经过Django表单系统的情况下清理输入字符串 也就是说,我正在编写通过AJAX交付表单输入的代码,因此我跳过了django提供的整个表单模型。但我确实希望在提交到数据库之前清除输入 Django表单模型不仅仅是呈现表单,它们更多的是处理和清理表单(GET/POST)输入,这正是您想要做的。当来自AJAX请求的POST或GET数据到达服务器时,它基本上无法与表单数据区分开来。我主张创建一个表单模型,它是AJAX请求的模型 想想一个例子: POST /l

有没有一种推荐的方法可以使用Django在不经过Django表单系统的情况下清理输入字符串


也就是说,我正在编写通过AJAX交付表单输入的代码,因此我跳过了django提供的整个表单模型。但我确实希望在提交到数据库之前清除输入

Django表单模型不仅仅是呈现表单,它们更多的是处理和清理表单(GET/POST)输入,这正是您想要做的。当来自AJAX请求的POST或GET数据到达服务器时,它基本上无法与表单数据区分开来。我主张创建一个表单模型,它是AJAX请求的模型

想想一个例子:

POST /login.jsp HTTP/1.1
Host: www.mysite.com
User-Agent: Mozilla/4.0
Content-Length: 27
Content-Type: application/x-www-form-urlencoded

userid=joe&password=guessme
这可能来自AJAX请求或表单,当它到达您的服务器时,其实并不重要!当然,它们被称为表单模型,因为这通常是GET或POST数据的来源,但它不一定来自表单:)

如果您创建一个表单模型来表示您的AJAX请求,那么您将得到它附带的所有钩子和清理,这一切都有点“django风格”

更新关于您的评论:

我想你会有多个表单类。显然,我不知道你的系统是如何设计的,但我会尽我所能提供建议

正如您所说,您将使用它来清理数据,以便根据发送的数据定义表单类。例如,如果我有一个AJAX请求,它提交了一个带有名称、电子邮件和CommentBody数据的注释,这将是一个表单类。如果我有另一个AJAX请求发布一篇新文章,发送Title、Author和ArticleBody,这将是另一个表单类


并非所有AJAX请求都需要表单,如果您有一个AJAX调用投票支持一条评论,您可能不会将其视为表单,因为(我猜)您不需要清理任何数据。

表单就是为了这个。无论是否使用表单显示表单,都可以使用表单验证输入。您可能希望向表单传递额外字段,如:Matt,我的系统广泛使用AJAX更新数据库中的数据。您是否建议为每个ajax请求创建一个派生表单类,或者,如果可能的话,创建一个处理任何输入的通用ajax派生。作为回应,我编辑了我的答案,这比试图将其填入注释中要容易:)+1:表单用于清理输入。“2.根据一组验证规则检查提交的数据。”我们使用表单验证我们的web服务输入。好的,听起来django的做法是为每个需要验证的ajax发布创建一个表单。似乎很严厉,但却是一种干净/有条理的做事方式。