如何解决API创建中的“ request.GET.get”在Django中有什么作用,它如何精确地工作?
我正在看关于Django的讲座。讲师很好地解释了所有内容,但没有对“我有效创建的API”进行过多详细介绍。这是我第一次介入,所以我不确定。
我不理解的是这行request.GET.get("start")
。仅仅使用提取功能,如何使它在index.html文件(带有嵌入式js脚本)中起作用?
views.py
def posts(request):
# Get start and end points
start = int(request.GET.get("start") or 0)
end = int(request.GET.get("end") or (start + 9))
# Generate list of posts
data = []
for i in range(start,end + 1):
data.append(f"Post #{i}")
# Artificially delay speed of response
time.sleep(1)
# Return list of posts
return JsonResponse({
"posts": data
})
index.html
fetch(`/posts?start=${start}&end=${end}`)
.then(response => response.json())
.then(data => {
data.posts.forEach(add_post);
})
解决方法
request 对象包含有关用户请求的信息。他们向页面发送了哪些数据,来自何处等。
request.GET 包含 GET 变量。这些是您在浏览器地址栏中看到的内容。 .get() 方法是一种用于字典的方法。您的代码片段正在做的是说,“获取名为 'page' 的 GET 变量的值,如果它不存在,则返回 1”。
同样,您将看到当用户提交表单时使用 request.POST。
对于发布的具体示例: start = int(request.GET.get("start") 或 0) end = int(request.GET.get("end") 或 (start + 9))
获取(/posts?start=${start}&end=${end}
)
例如。 http://127.0.0.1:8000/posts?start=10&end=20 这将从 API 中获取 post#10 到 post#20。
您可以将这些开始和结束变量更改为第一个和最后一个或其他任何可以正常工作的变量。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。