python - Django:获取对象所在的页面
问题描述
假设我有一堂课Foo
。我想知道 Foo 的特定实例将在哪个页面上:例如:api.myapp.com/foos/?page=25
。
给定一个对象:
Foo.objects.get(id=500)
,如何确定我的实例将在哪个页面上?
解决方案
Django 本身并没有预先定义您的模型将通过哪个 url 访问。文档说——“Django 让你可以随心所欲地设计 URL,没有框架限制”。所以这个过程是相反的:
您定义 url(查看 urls.py 内部)并将其与要调用以进行处理的视图相关联:
from django.urls import path from . import views urlpatterns = [ path('foos/', views.foo_list), path('foos/<int:id>/', views.foo_detail),
你应该定义视图(通常在views.py中)
在视图中,您可以调用任何模型从数据库中获取数据
你可以使用额外的包来实现你的 API,比如 Django Rest Framework。它具有允许您一次定义一组 url 的路由器。以下将生成 URL 模式,如 '^foos/$' 和 '^foos/{pk}/$':
您在路由器中注册您的网址
from rest_framework import routers router = routers.SimpleRouter() router.register(r'foos', FooViewSet)
你应该实现 FooViewSet 并确保在那里使用你的模型。
推荐阅读
- python-3.x - 无法在 tesseract 中提取白色文本
- iis - Sitefinity/IIS 中的缓存问题,我该怎么办?
- ios - iOS:两个条形图在一起
- symfony - 有没有办法通过 onKernelResponse 监听器取消重定向?
- php - 如何在 mySQLi 中使用 MONTH() 按月获取博客文章
- javascript - express next(err) 是否必须具有特定格式?
- python - NumPy - 捕获前三个连续负数的索引
- javascript - IE 在执行前更改 JS 代码
- python - Keras - 在输出前获取最后一层
- c# - 从 Api 获取图像并在 Razor 视图中显示