Django template/form 用于用户输入
Django template/form for user input
我有一个基本的 django-rest API 运行 用于我编写的程序。该程序从数据库中检索数据并将其显示在浏览器上。使用两个输入值 'a' 和 'b' 查询数据库。
例如:
a = raw_input('Enter A.')
b = raw_input('Enter B.')
response = HttpResponse()
for post in db.collection.find({'field1' : a, 'field2' : b})
response.write(post)
return response
除了 raw_input 语句,我如何编写代码,使用户能够从浏览器输入 'a' 和 'b' 的值?
当我输入URL时,我应该有一个页面可以输入'a'和'b'。一旦我点击提交,它应该会显示帖子(由 return response 完成)。没有 'PUT' 功能,只有 'GET' 使用用户输入。
提前致谢。
如果您使用 GET 提交表单,则值应在 request.GET
中。所以像 request.GET['a']
? request
对象应该在您的 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>
然后 URL 捕捉它;
url(r'^search/(?P<a>\w+)/(?P<b>\w+)/$', 'views.search_view', name="searchview")
然后一个视图来处理 URL;
def search_view(request, a, b):
myobj = MyModel.objects.get(field1=a, field2=b)
或者基于 class 的视图类似于;
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})
我有一个基本的 django-rest API 运行 用于我编写的程序。该程序从数据库中检索数据并将其显示在浏览器上。使用两个输入值 'a' 和 'b' 查询数据库。
例如:
a = raw_input('Enter A.')
b = raw_input('Enter B.')
response = HttpResponse()
for post in db.collection.find({'field1' : a, 'field2' : b})
response.write(post)
return response
除了 raw_input 语句,我如何编写代码,使用户能够从浏览器输入 'a' 和 'b' 的值?
当我输入URL时,我应该有一个页面可以输入'a'和'b'。一旦我点击提交,它应该会显示帖子(由 return response 完成)。没有 'PUT' 功能,只有 'GET' 使用用户输入。
提前致谢。
如果您使用 GET 提交表单,则值应在 request.GET
中。所以像 request.GET['a']
? request
对象应该在您的 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>
然后 URL 捕捉它;
url(r'^search/(?P<a>\w+)/(?P<b>\w+)/$', 'views.search_view', name="searchview")
然后一个视图来处理 URL;
def search_view(request, a, b):
myobj = MyModel.objects.get(field1=a, field2=b)
或者基于 class 的视图类似于;
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})