Python Django模板/表单供用户输入

Python Django模板/表单供用户输入,python,django,django-forms,django-rest-framework,Python,Django,Django Forms,Django Rest Framework,我为我编写的程序运行了一个基本的django rest API。程序从数据库中检索数据并将其显示在浏览器上。使用两个输入值“a”和“b”查询数据库 例: 我如何编写代码来代替原始输入语句,使用户能够从浏览器中输入“a”和“b”的值 当我输入URL时,我应该有一个页面来输入“a”和“b”。一旦我点击Submit,它就会显示帖子(通过返回响应完成)。没有“PUT”功能,只有使用用户输入的“GET” 提前感谢。如果您使用GET提交表单,那么值应该在请求中。GET。所以类似于request.GET['a

我为我编写的程序运行了一个基本的django rest API。程序从数据库中检索数据并将其显示在浏览器上。使用两个输入值“a”和“b”查询数据库

例:

我如何编写代码来代替原始输入语句,使用户能够从浏览器中输入“a”和“b”的值

当我输入URL时,我应该有一个页面来输入“a”和“b”。一旦我点击Submit,它就会显示帖子(通过返回响应完成)。没有“PUT”功能,只有使用用户输入的“GET”


提前感谢。

如果您使用GET提交表单,那么值应该在
请求中。GET
。所以类似于
request.GET['a']
请求
对象应该在Django视图中可用。

好的,因此首先需要一个带有表单的页面

<form action="{% url 'searchview' %}" method="GET">
  <label>A:</label>
    <input name="a">
  <label>B:</label>  
    <input name="b">

    <button type="submit">
        Search
    </button>
</form>
或者,基于类的视图类似于

class SearchView(View):
    model = MyModel
    template_name = 'template.html'

    def get(self, request, *args, **kwargs):
        a = request.GET['a']
        b = request.GET['b']
        obj = self.model.get(field1=a, field2=b)
        return render(request, self.template_name, {'obj': obj})
url(r'^search/(?P<a>\w+)/(?P<b>\w+)/$', 'views.search_view', name="searchview")
def search_view(request, a, b):
    myobj = MyModel.objects.get(field1=a, field2=b)
class SearchView(View):
    model = MyModel
    template_name = 'template.html'

    def get(self, request, *args, **kwargs):
        a = request.GET['a']
        b = request.GET['b']
        obj = self.model.get(field1=a, field2=b)
        return render(request, self.template_name, {'obj': obj})