首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bottle.py呈现静态文件

bottle.py呈现静态文件
EN

Stack Overflow用户
提问于 2014-12-03 00:20:47
回答 1查看 327关注 0票数 0

我正在构建一个bottle.py应用程序,它从MongoDB获取一些数据,并使用pygal将其呈现为网页。

这段代码在我的浏览器中生成了一个Error: 500 Internal Server Error

在服务器上,我看到:Exception: TypeError('serve_static() takes exactly 1 argument (0 given)',)

我的问题是:如何更正代码以呈现.svg文件?

代码:

代码语言:javascript
复制
import sys
import bottle
from bottle import get, post, request, route, run, static_file
import pymongo
import json
import pygal

connection = pymongo.MongoClient("mongodb://localhost", safe=True)

@get('/chart')  
def serve_static(chart):
    db = connection.control
    chart = db.chart
    cursor = chart.find({}, {"num":1, "x":1, "_id":0})
    data = []
    for doc in cursor:
        data.append(doc)
    list = [int(i.get('x')) for i in data]
    line = pygal.Line()
    line.title = 'widget quality'
    line.x_labels = map(str, range(1, 20))
    line.add('quality measure', list)
    line.render_to_file('chart.svg')
    try:
        return static_file(chart.svg, root='/home/johnk/Desktop/chart/',mimetype='image/svg+xml')
    except:
        return "<p>Yikes! Somethin' wrong!</p>" 

bottle.debug(True)
bottle.run(host='localhost', port=8080) 
EN

回答 1

Stack Overflow用户

发布于 2014-12-03 00:58:33

您没有给路由提供参数,所以函数不会得到任何参数。

您可能想要做的是:

代码语言:javascript
复制
@get('/<chart>')  
def serve_static(chart):
    ...

如果您希望/myfile.svg正常工作,或者:

代码语言:javascript
复制
@get('/chart/<chart>')  
def serve_static(chart):
    ...

如果你想让/chart/myfile.svg正常工作。

如果您只想每次都显示相同的SVG文件,则可以省略该参数:

代码语言:javascript
复制
@get('/chart')
def serve_static():
    ...
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27254078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档