Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django 1.7中的REST API_Python_Django_Rest - Fatal编程技术网

Python Django 1.7中的REST API

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

尽管如此,我还是找不到一个如何在Django(而不是Django REST框架)中构建简单的“Hello world”REST API的示例。因此,用户发出get请求,例如

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部分