Python Django 1.7中的REST API
尽管如此,我还是找不到一个如何在Django(而不是Django REST框架)中构建简单的“Hello world”REST API的示例。因此,用户发出get请求,例如Python Django 1.7中的REST API,python,django,rest,Python,Django,Rest,尽管如此,我还是找不到一个如何在Django(而不是Django REST框架)中构建简单的“Hello world”REST API的示例。因此,用户发出get请求,例如 my_app/api/v1/hello_world 他们收到 {"hello": "world"} 有吗?或者你能把它给我吗?有很多使用Django的“Hello World”应用程序的例子。我与他人合著的一个特别的例子可以在这里找到:下面是一个经过修改的示例,用于生成您想要的输出: from django.conf i
my_app/api/v1/hello_world
他们收到
{"hello": "world"}
有吗?或者你能把它给我吗?有很多使用Django的“Hello World”应用程序的例子。我与他人合著的一个特别的例子可以在这里找到:下面是一个经过修改的示例,用于生成您想要的输出:
from django.conf import settings
from django.conf.urls import url
from django.core.management import execute_from_command_line
from django.http import JsonResponse
settings.configure(
DEBUG=True,
SECRET_KEY='placerandomsecretkeyhere',
ROOT_URLCONF=__name__,
MIDDLEWARE_CLASSES=(),
)
urlpatterns = [
url(r'^my_app/api/v1/hello_world/$',
lambda request: JsonResponse({'hello': 'world'}))
]
if __name__ == "__main__":
execute_from_command_line()
对于JsonRsponse
,它需要Django 1.7+,但是使用HttpResponse
可以很容易地适应较旧的版本。将其另存为hello.py
,您可以使用python hello.py runserver
运行服务器。用curl
敲击它将产生:
$ curl -i http://localhost:8000/my_app/api/v1/hello_world/
HTTP/1.0 200 OK
Date: Thu, 27 Nov 2014 14:48:07 GMT
Server: WSGIServer/0.1 Python/2.7.3
Content-Type: application/json
{"hello": "world"}
然而,这只是一个代码高尔夫练习,是对构建RESTful API的过度简化。如果您想了解Django如何将请求路由到响应(将正则表达式模式映射到可调用项)的基础知识,本例将有所帮助。如果您想学习构建一个有意义的REST API,那么Django REST framework是一个构建健壮且自文档化API的极好工具。谢谢,但这是非常好的hello world,那么模型、控制器呢?
lambda
创建的匿名函数是一个有效的Django视图。没有模型,因为问题不需要或不需要模型。您要求提供一个“Hello World”示例,这就是我给出的示例。如果我想添加一个欢迎页面和另一个api端点,我将如何做?您将向URL模式添加更多URL,并将URL映射到生成响应的函数。我建议阅读官方教程的第3部分