Dagny 技术文档
2024-12-23 21:16:20作者:袁立春Spencer
1. 安装指南
在开始使用 Dagny 前,您需要确保您的环境中已经安装了 Django。Dagny 是 Django 的一个扩展,因此它依赖于 Django 运行。
安装 Dagny 的步骤如下:
-
从 GitHub 克隆 Dagny 仓库:
git clone 'git://github.com/zacharyvoase/dagny.git' -
进入 Dagny 目录:
cd dagny/ -
安装运行时依赖:
pip install -r REQUIREMENTS -
如果需要运行测试,安装测试依赖:
pip install -r REQUIREMENTS.test
2. 项目的使用说明
Dagny 让构建资源型 Web 应用程序变得非常简单。以下是定义资源的基本步骤:
- 定义一个资源类,继承自
dagny.Resource。 - 为该资源类添加动作(actions),例如
index、new、create、edit、update和destroy等。 - 创建相应的模板文件,用于展示资源的各种状态。
- 设置 URL 模式,将 URL 与资源动作关联起来。
以下是一个简单的示例,展示如何定义一个 Poll 资源:
from dagny import Resource, action
from django.shortcuts import get_object_or_404, redirect
from polls import forms, models
class Poll(Resource):
@action
def index(self):
self.polls = models.Poll.objects.all()
@action
def new(self):
self.form = forms.PollForm()
@action
def create(self):
self.form = forms.PollForm(self.request.POST)
if self.form.is_valid():
self.poll = self.form.save()
return redirect("Poll#show", self.poll.id)
return self.new.render()
@action
def edit(self, poll_id):
self.poll = get_object_or_404(models.Poll, id=int(poll_id))
self.form = forms.PollForm(instance=self.poll)
@action
def update(self, poll_id):
self.poll = get_object_or_404(models.Poll, id=int(poll_id))
self.form = forms.PollForm(self.request.POST, instance=self.poll)
if self.form.is_valid():
self.form.save()
return redirect("Poll#show", self.poll.id)
return self.edit.render()
@action
def destroy(self, poll_id):
self.poll = get_object_or_404(models.Poll, id=int(poll_id))
self.poll.delete()
return redirect("Poll#index")
对应的模板文件可能如下所示:
<!-- polls/index.html -->
<ol>
{% for poll in self.polls %}
<li><a href="{% url Poll#show poll.id %}">{{ poll.name }}</a></li>
{% endfor %}
</ol>
<p><a href="{% url Poll#new %}">创建投票</a></p>
在项目的 URL 配置中,您需要将 URL 模式与资源动作关联起来:
from django.conf.urls.defaults import *
from dagny.urls import resources
urlpatterns = patterns('',
(r'^polls/', resources('polls.resources.Poll', name='Poll')),
)
3. 项目API使用文档
Dagny 的 API 设计是为了简化资源型 Web 应用的构建。目前,Dagny 处于实验阶段,API 可能会发生变化。
Resource: 资源基类,所有资源都应该继承自这个类。action: 装饰器,用于定义资源的不同动作,如index、new、create、edit、update和destroy。
每个动作对应于 RESTful 架构中的一个 HTTP 方法,例如:
index: 对应于 GET 方法,用于获取资源列表。new: 对应于 GET 方法,用于显示创建新资源表单的页面。create: 对应于 POST 方法,用于创建新资源。edit: 对应于 GET 方法,用于显示编辑资源的表单页面。update: 对应于 POST 方法,用于更新资源。destroy: 对应于 POST 方法,用于删除资源。
4. 项目安装方式
请参考上述“安装指南”部分,按照步骤进行安装。简要概述如下:
- 克隆 Dagny 仓库。
- 进入 Dagny 目录。
- 使用 pip 安装运行时依赖。
- 如需进行测试,安装测试依赖。
登录后查看全文
热门项目推荐
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00- QQwen3-Coder-Next2026年2月4日,正式发布的Qwen3-Coder-Next,一款专为编码智能体和本地开发场景设计的开源语言模型。Python00
xw-cli实现国产算力大模型零门槛部署,一键跑通 Qwen、GLM-4.7、Minimax-2.1、DeepSeek-OCR 等模型Go06
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin08
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00
项目优选
收起
deepin linux kernel
C
27
11
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
538
3.76 K
暂无简介
Dart
774
192
Ascend Extension for PyTorch
Python
343
406
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.34 K
756
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
1.07 K
97
React Native鸿蒙化仓库
JavaScript
303
356
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
337
180
AscendNPU-IR
C++
86
142
openJiuwen agent-studio提供零码、低码可视化开发和工作流编排,模型、知识库、插件等各资源管理能力
TSX
987
249