我有一个简单的 Django 应用程序,它查询数据库并显示返回的对象的字段。我想知道将这种有向图可视化集成到我的项目中的最佳方法是什么?到目前为止,我从未使用过 d3。
请允许我解释我的申请。目前,它只是一个表单,允许用户通过输入书籍的唯一 ID 来查询数据库中有关书籍信息的内容。这工作正常,内容通过使用模板显示。
我想做的是使用查询对象的字段之一将数据推送到上面的图形示例中,并在按下文本链接时简单地在新窗口中显示该图形。
这是我的应用程序结构:
代码
myapp.models.py:
from django.db import models
class Book(models.Model):
uid = models.IntegerField(primary_key=True)
title = models.CharField(max_length=30)
related_books = models.CharField(max_length=2048)
class Meta:
db_table = u'books'
该字段related_books
包含我希望绘制的数据。rel_book1 rel_book2 rel_book3 ...
数据以每本书与查询的书对象相关的格式存储,每个对象都有n
相关的书,但至少总是有两个。
myproject.templates.search.html:
<form action="" method="get">
<label for="id_q">Search:</label>
<input id="id_q" name="q" type="text">
<input type="submit" value="Submit">
{% if found_entries %}
<ul>
{% for i in found_entries %}
{{ i.uid }} {{ i.title }} {{ value|linebreaks }}
{% endfor %}
</ul>
{% endif %}
</form>
所以这就是我想显示图表的地方;按下文本链接时在新窗口中显示。
myapp.views.py:
from django.shortcuts import render_to_response
from django.template import RequestContext
from myapp.search import get_query
from myapp.models import Book
def search(request):
query_string = ''
found_entries = None
if ('q' in request.GET) and request.GET['q']:
query_string = request.GET['q']
found_entries = Book.objects.filter(uid=query_string)
return render_to_response('search.html',
{ 'query_string': query_string, 'found_entries': found_entries },
context_instance=RequestContext(request))
因此,重申一下,用户输入给定书籍的唯一 ID,并显示与该书籍相关的数据库内容。在显示 ID 和标题的那一刻,我还想显示指向有向图示例的链接。
所以我的问题是,当查询 Book 模型时,我将如何从字段中提取信息related_books
,以便我可以将这些数据推送到图形示例中,为生成的每个 Book 对象生成图形?
谢谢你陪我!