Django 轻松构建 RESTful 界面

2023-11-23

我正在为一个新项目寻找学习 Django 的借口。通常,我喜欢构建 RESTful 服务器端接口,其中 URL 映射到在某些平台独立上下文(例如 XML 或 JSON)中吐出数据的资源。这是 在不使用框架的情况下,这样做相当简单,但是其中一些框架(例如 Ruby on Rails)可以方便地允许您根据传递的 URL 类型和现有模型代码轻松地将 XML 吐回客户端。

我的问题是,像 Django 这样的东西支持这个吗?我用谷歌搜索并找到了一些可以在 Django 之上运行的“RESTful”第三方代码。不确定我是否太热衷于此。

如果不是 Django,还有其他已经考虑到这一点而构建的 Python 框架吗?这样我就不必像 PHP 等语言那样重新发明轮子了?


这可能很容易做到。

URL 映射很容易构造,例如:

urlpatterns = patterns('books.views',
  (r'^books/$', 'index'),
  (r'^books/(\d+)/$', 'get'))

Django 支持模型序列化,因此很容易将模型转换为 XML:

from django.core import serializers
from models import Book

data = serializers.serialize("xml", Book.objects.all())

将两者结合起来装饰者您可以构建快速的处理程序:

from django.http import HttpResponse
from django.shortcuts import get_object_or_404

def xml_view(func):
  def wrapper(*args, **kwargs):
    result = func(*args, **kwargs)
    return HttpResponse(serializers.serialize("xml", result),
        mimetype="text/xml")
  return wrapper

@xml_view
def index(request):
  return Books.objects.all()

@xml_view
def get(request, id):
  return get_object_or_404(Book, pk=id)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 轻松构建 RESTful 界面 的相关文章

  • 如何使用 Julia 查找矩阵中的连通分量

    假设我有以下矩阵 此处用 Julia 语言定义 mat 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 将一组值为 1 的相邻元素视为一个 分量 如何识别该矩阵有 2 个分量以及每个分量由哪些顶点组成 对于矩
  • 在python中合并两个json对象

    我正在 python 中合并两个 json 我正在做 import json json obj json dumps a 1 2 json obj1 json dumps a 3 4 json obj json obj1 print jso
  • 将 3d NumPy 数组重塑为 2d NumPy 数组时遇到问题

    我正在研究图像处理问题 我的数据以 3 维 NumPy 数组的形式呈现 其中 x y z 条目是图像 z 的 x y 像素 数值强度值 有 100000 张图像 每张图像为 25x25 因此 数据矩阵的大小为 25x25x10000 我试图
  • 为什么any (True for ... if cond) 比any (cond for ...) 快得多?

    检查列表是否包含奇数的两种类似方法 any x 2 for x in a any True for x in a if x 2 计时结果与a 0 10000000 每次尝试五次 次数以秒为单位 0 60 0 60 0 60 0 61 0 6
  • Heroku 上的 Django 应用程序在一段时间后删除对象

    我编写了一个简单的 Django 问答论坛应用程序并将其部署在 Heroku 上 该网站的本地版本运行良好 但是 生产版本不会将问题 答案等存储超过几个小时 我决定坚持使用 Django 附带的 sqlite3 我预计该网站不会有太多流量
  • 使用 scikit-learn 在朴素贝叶斯分类器中混合类别数据和连续数据

    我正在使用 Python 中的 scikit learn 开发分类算法来预测某些客户的性别 除此之外 我想使用朴素贝叶斯分类器 但我的问题是我混合了分类数据 例如 在线注册 接受电子邮件通知 等 和连续数据 例如 年龄 长度 会员资格 等
  • 为什么 Numpy 创建零数组比用零替换现有数组的值要快得多?

    我有一个用于跟踪各种值的数组 数组是2500x1700尺寸上 所以不是很大 在会话结束时 我需要将该数组中的所有值重置为零 我尝试创建一个新的零数组并将数组中的所有值替换为零 并且创建一个全新的数组要快得多 代码示例 for in sess
  • argparse - 禁用相同参数的出现

    我正在尝试使用 argparse 禁用一个命令行中出现相同的参数 python3 argument1 something argument2 argument1 something else 这意味着这应该会引发错误 因为 argument
  • Java HttpURLConnection:内容长度计算

    我目前正在为 bitbucket issues RESTful API 开发一个库 我取得了很大的进步 现在我要解决这个部分更新问题 http confluence atlassian com display BBDEV Issues Is
  • 在 Windows 上安装 PyGIMP

    在网上 我可以找到有关使用 python 编写 gimp 脚本的各种示例 http www jamesh id au software pygimp http www jamesh id au software pygimp http ww
  • 使用 Pytest 捕获 SystemExit 消息

    我正在使用 pytest 编写测试 我遇到了一些函数抛出异常的情况SystemExit如果输入错误 终端上会显示一些错误消息 我想为以下情况编写测试SystemExit抛出并验证输出错误消息中是否有特定字符串 这是代码 def test v
  • Python 调试器是否会介入生成器?

    我目前正在使用 NetBeans IDE 和 Jython 2 5 1 当逐步调试我的项目时 一旦遇到生成器的迭代 调试器就会直接转到代码末尾 输出工作正常 但是一旦满足第一个生成器就无法进行逐步调试 这是所有 Python IDE 中 P
  • Python 特征向量:numpy.linalg、scipy.linalg 和 scipy.sparse.linalg 之间的差异

    Scipy 和 Numpy 具有三个不同的函数来查找给定方阵的特征向量 它们是 numpy linalg eig a http docs scipy org doc numpy reference generated numpy linal
  • python中终止进程的跨平台方法

    当我尝试使用 subprocess Popen terminate 或 Kill 命令终止 Windows 中的进程时 出现访问被拒绝错误 如果文件不再存在 我真的需要一种跨平台的方式来终止进程 是的 我知道这不是做我正在做的事情的最优雅的
  • 如何在 django 中发出 post 请求后获取表单的名称?

  • 从 Java 调用 Python 代码时出现问题(不使用 jython)

    我发现这是从 java 运行 使用 exec 方法 python 脚本的方法之一 我在 python 文件中有一个简单的打印语句 但是 我的程序在运行时什么也没做 它既不打印Python文件中编写的语句 也不抛出异常 程序什么都不做就终止了
  • 如何更改Python中的全局变量[重复]

    这个问题在这里已经有答案了 我正在尝试更改程序中的变量 我在程序开始时声明了一个全局变量 我想在程序中的不同函数中更改该变量 我可以通过再次声明函数内的变量来做到这一点 但我想知道是否有更好的方法来做到这一点 下面是一些测试代码来解释我的意
  • 在IPython笔记本中自动播放声音

    我经常在 IPython 笔记本中运行长时间运行的单元 我希望笔记本在单元完成执行时自动发出蜂鸣声或播放声音 有没有办法在 iPython 笔记本中执行此操作 或者我可以在单元格末尾放置一些命令来自动播放声音 我正在使用 Chrome 如果
  • 在 kivy 中嵌套小部件

    我正在尝试在 kivy 中制作一个界面 我认为即使在完成教程之后 我仍然不了解自定义小部件以及如何对它们进行层次结构的一些基本知识 我认为我有更多的盒模型 html 思维方式 因此小部件嵌套在本机 GUI 中的方式对我来说仍然有点陌生 一些
  • python生成器太慢,无法使用它。我为什么要使用它?什么时候?

    最近我收到一个问题 哪一个是最快的 iterator list comprehension iter list comprehension and generator 然后编写简单的代码如下 n 1000000 iter a iter ra

随机推荐

  • 查询对象实现示例[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 任何人都可以推荐有关 C Java 中查询对象模式使用的优秀教程 实现或示例代码吗 我用谷歌没有找到太多 由于 LINQ 几乎无处不在 您确定需要重
  • cmake的默认构建配置是什么

    In this答案 它说 Debug 是默认的 cmake 构建配置 但我有不同的观察 我在 CMakeLists txt 中有以下内容 可以根据当前的构建配置选择库的调试和发布版本 target link libraries MyApp
  • 找不到有角度的自定义管道

    在我的应用程序中 我需要全局自定义管道 我尝试按照以下方式实现它角管但我总是看到这个错误 模板解析错误 找不到管道 formatdate 格式化日期 管道 import Pipe PipeTransform from angular cor
  • Java USSD 菜单树生成 - 如何

    我想使用 Java 生成一个基于树的菜单 该菜单将显示在 USSD 浏览器上 每个节点可能有子节点 以叶节点结尾 我还必须维护访问此菜单的每个用户的状态 例如他在菜单上的当前位置 以方便导航 关于如何实现树生成和状态管理有什么想法吗 我假设
  • 在 OSX 上安装 Jekyll 需要 GCC 吗?

    Jekyll 安装 says GCC 和 Make 如果您的系统没有安装它们 您可以通过在系统的命令行界面中运行 gcc v 和 make v 来检查 我正在使用 macOS Sierra 我已经安装了 Xcode 的命令行工具 CLT 和
  • 如何向 C++ 程序添加定时延迟?

    我正在尝试在 C 程序中添加定时延迟 并且想知道是否有人对我可以尝试的内容或我可以查看的信息有任何建议 我希望我有更多关于如何实现这个定时延迟的细节 但是在我有更多关于如何添加定时延迟的信息之前 我不确定我应该如何尝试实现这个 C 11 的
  • 从程序集中删除签名

    我在 Visual Studio 中打开了一个项目 它恰好是 Enyim Caching 该程序集希望延迟签署 事实上 它如此强烈地希望延迟签名 以至于我无法强制 Visual Studio 编译它without延迟签字 我已取消选中 Vi
  • PHP 错误:“zip 扩展名和解压缩命令均丢失,正在跳过。”

    当我运行composer update我收到此错误消息 Loading composer repositories with package information Updating dependencies including requi
  • 如何在 woocommerce 中获取当前用户的所有订单

    我想获取当前用户在插件函数中发出的所有订单 我正在使用这个 function get all orders customer orders get posts apply filters woocommerce my account my
  • 如何将 ng-repeat 放入 ng-repeat 中 n 次

    I have a JSON object having nested nodes which can go on for any number of level I need to display the content of a node
  • 反射会带来什么风险? (中等信任度)

    中等信任托管环境中缺乏反思似乎造成很多问题适用于许多流行的 Web 应用程序 Why is 反射权限默认情况下禁用中等信任 反射在共享托管环境中会带来什么风险 随机参考 参见MSDN 如何在 ASP NET 2 0 中使用中等信任 反射允许
  • Django <-> SQL Server 2005,文本编码问题

    我正在尝试使用以下方法在 MS SQL Server 2005 上存储 Django 数据 http code google com p django pyodbc pyodbc FreeTDS 只要我存储由 ASCII 字符组成的字符串
  • 使用 CABasicAnimation 对帧属性进行动画处理

    我正在尝试对此进行精确的 翻译 UIView基于块的动画代码 UIView animateWithDuration 0 5 delay 0 0 options UIViewAnimationOptionCurveEaseInOut anim
  • 如何从 SQL Server 上的一张表中删除 8,500,000 条记录

    删除活动 其中 unt uid 为 null 将是最快的方法 但在该语句完成之前没有人可以访问数据库 表 因此这是不行的 我定义了一个游标来在工作时间完成此任务 但无论如何对生产力的影响很大 那么如何删除这些记录才能保证这个数据库的正常使用
  • 如何计算弹跳角?

    我玩了一段时间 但我就是想不通 我做了一个发射导弹的坦克 当导弹击中墙壁时 我希望它们弹开 但我希望它们弹回正确的角度 现在我没有任何障碍物 导弹一超出范围就会弹开viewportRectangle I made 我正在寻找的解决方案相当先
  • 如何自定义WebRTC视频源?

    有人知道如何更改WebRTC https cocoapods org pods libjingle peerconnection 视频来源 我正在开发一个屏幕共享应用程序 目前 我在 CVPixelBuffer 中实时检索渲染的帧 有人知道
  • 如果CHAR_BIT != 8,其他类型的大小是多少?

    C 标准要求sizeof char to be 1 无论实际需要多少位 其他数据类型是否以以下方式衡量 bytes or chars万一这些不一样呢 基本上 假设CHAR BIT is 16 would sizeof int16 t 等于1
  • Delphi线程等待数据,处理它,然后恢复等待

    我需要在Delphi中创建一个具有以下特征的线程 等待主线程将数据添加到共享队列 处理队列中的所有数据 将结果返回到主线程 对于最后一部分 我将仅将消息发送到主窗口 处理非常耗时 因此当工作线程处理先前的条目时 可能会将新数据添加到队列中
  • 快速在地图上添加注释

    尝试在地图上做一些注释 但无法绕过它 我正在使用的代码是 Names names Ben Big Hawk Enot Wiltons Scott s The Laughing Latitudes Longitudes coordinates
  • Django 轻松构建 RESTful 界面

    我正在为一个新项目寻找学习 Django 的借口 通常 我喜欢构建 RESTful 服务器端接口 其中 URL 映射到在某些平台独立上下文 例如 XML 或 JSON 中吐出数据的资源 这是 在不使用框架的情况下 这样做相当简单 但是其中一