【发布时间】:2016-04-16 23:53:16
【问题描述】:
我正在尝试将散景图嵌入到具有上传按钮的 Django 网站中。我使用here 给出的示例作为起点,然后添加来自here 的嵌入说明。我使用了need-a-minimal-django-file-upload-example/for_django_1.8,它按预期工作。然后我修改了以下文件,但出现以下错误:
ImportError: 没有名为“myapp”的模块
您可以在这里看到我的目录结构以及修改/添加的三个文件:
如果无法加载图片,请看这里:
.
└── myproject
├── db.sqlite3
├── manage.py
├── media
│ └── documents
│ └── 2016
│ └── 01
│ ├── 12
│ │ └── silico_0_truth_filtered_ptps.csv
│ └── 15
│ └── silico_0_truth_filtered_ptps.csv
└── myproject
├── __init__.py
├── myapp
│ ├── admin.py
│ ├── forms.py
│ ├── __init__.py
│ ├── migrations
│ │ ├── 0001_initial.py
│ │ ├── __init__.py
│ │ └── __pycache__
│ │ ├── 0001_initial.cpython-35.pyc
│ │ └── __init__.cpython-35.pyc
│ ├── models.py
│ ├── __pycache__
│ │ ├── admin.cpython-34.pyc
│ │ ├── admin.cpython-35.pyc
│ │ ├── forms.cpython-35.pyc
│ │ ├── __init__.cpython-34.pyc
│ │ ├── __init__.cpython-35.pyc
│ │ ├── models.cpython-34.pyc
│ │ ├── models.cpython-35.pyc
│ │ ├── urls.cpython-35.pyc
│ │ └── views.cpython-35.pyc
│ ├── templates
│ │ ├── list.html
│ │ └── simple_chart.html
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── __pycache__
│ ├── __init__.cpython-34.pyc
│ ├── __init__.cpython-35.pyc
│ ├── settings.cpython-34.pyc
│ ├── settings.cpython-35.pyc
│ ├── urls.cpython-35.pyc
│ └── wsgi.cpython-35.pyc
├── settings.py
├── urls.py
└── wsgi.py
这里是templates/simple_chart.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Experiment with Bokeh</title>
<script src="http://cdn.bokeh.org/bokeh/release/bokeh-0.8.1.min.js"></script>
<link rel="stylesheet" href="http://cdn.bokeh.org/bokeh/release/bokeh-0.8.1.min.css">
</head>
<body>
{{the_div|safe}}
{{the_script|safe}}
</body>
</html>
这里是myapp/urls.py(错误源于这里。我不明白为什么无法解析导入):
# -*- coding: utf-8 -*-
from django.conf.urls import patterns, url
from myapp.views import simple_chart
urlpatterns = patterns('myproject.myapp.views',
url(r'^list/$', 'list', name='list'),
url(r'^simple_chart/$', simple_chart, name="simple_chart"),
)
这里是myapp/views.py:
# -*- coding: utf-8 -*-
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
from myproject.myapp.models import Document
from myproject.myapp.forms import DocumentForm
from django.shortcuts import render
from bokeh.plotting import figure
from bokeh.resources import CDN
from bokeh.embed import components
def list(request):
# Handle file upload
if request.method == 'POST':
form = DocumentForm(request.POST, request.FILES)
if form.is_valid():
newdoc = Document(docfile=request.FILES['docfile'])
newdoc.save()
# Redirect to the document list after POST
return HttpResponseRedirect(reverse('myproject.myapp.views.list'))
else:
form = DocumentForm() # A empty, unbound form
# Load documents for the list page
documents = Document.objects.all()
# Render list page with the documents and the form
return render_to_response(
'list.html',
{'documents': documents, 'form': form},
context_instance=RequestContext(request)
)
def simple_chart(request):
plot = figure()
plot.circle([1,2], [3,4])
script, div = components(plot, CDN)
return render(request, "simple_chart.html", {"the_script":script, "the_div":div})
【问题讨论】:
-
我很困惑。我的问题怎么不是现有的编程问题?
-
不是编程问题,这里没有问题要解决,你找人给你写代码
-
我的问题真的和这个有很大不同吗? stackoverflow.com/questions/5871730/… 编辑:如果有帮助,请更新标题
-
这个问题大约有 4 年的历史了,从那时起整个社区都发生了变化,如果它让你感觉好些,我也投票决定关闭那个问题。
-
删除了我的评论,感谢您改进您的问题。