我为我编写的程序运行了一个基本的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
如何编写一个代码,使用户能够输入' a'的值,而不是raw_input语句。和' b'从浏览器?
当我输入网址时,我应该有一个页面来输入' a'和' b'。一旦我点击提交,它应该显示帖子(通过返回响应完成)。没有' PUT'功能,只有' GET'使用用户输入。
提前致谢。
答案 0 :(得分:2)
好的,所以你首先需要一个带有表格的页面;
<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 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})
答案 1 :(得分:0)
如果您使用GET提交表单,则值应该在request.GET
中。那么request.GET['a']
之类的东西呢?您的Django视图中应该可以使用request
对象。