我已经使用XAMPP& amp;部署了我的django应用程序mod_wsgi的。在部署我的应用程序之前一切都很好。但是在我部署之后,pdf dowloand函数将无效并返回错误。
这是我的代码的快照
def render_to_pdf(template_src, context_dict, file_name):
template = get_template(template_src)
context = Context(context_dict)
html = template.render(context)
result = StringIO.StringIO()
pdf = pisa.pisaDocument(StringIO.StringIO(html.encode("ISO-8859-1")), result)
if not pdf.err:
response = http.HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'attachment; filename="%s"' %(file_name,)
response.write(result.getvalue())
return response
return http.HttpResponse('We had some errors<pre>%s</pre>' % cgi.escape(html))
这是错误
[Errno 10061] No connection could be made because the target machine actively refused it
以下是导致错误的代码行
pdf = pisa.pisaDocument(StringIO.StringIO(html.encode("ISO-8859-1")), result)
异常位置:
C:\Python27x32\Lib\socket.py in create_connection, line 571
这是我的wsgi.py
的代码<VirtualHost *:80>
WSGIScriptAlias / "c:/xampp/htdocs/ghb/ghb/wsgi.py"
<Directory "c:/xampp/htdocs/ghb/">
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
Alias /static/ C:/xampp/htdocs/ghb/static/
<Directory c:/xampp/htdocs/ghb/static/>
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
答案 0 :(得分:2)
相关的回溯可以从你的error.log
开始,从第400行开始。从这个回溯中,在我看来你的HTML包含一个URL(可能是一个图像的链接?),它不起作用(也许它指向localhost
并且可以在您的桌面上运行,但不能在服务器上运行?); xhtml2pdf尝试获取该URL(可能包含PDF中的图像?)并失败。检查html
变量(传递给xhtml2pdf的HTML代码)的内容是否有损坏的http:
或https:
链接。通过跟踪回溯中的文件名+行引用(如File "C:\\Python27x32\\lib\\site-packages\\xhtml2pdf\\parser.py", line 448
),您可以更准确地确定xhtml2pdf阻塞的元素。