在我看來可調用的,我希望用戶能夠創建一個名爲filename像這樣的新文件:金字塔:我如何製作一些靜態視圖到一些絕對路徑,然後讓用戶將文件上傳到該路徑?
@view_config(route_name='home_page', renderer='templates/edit.pt')
def home_page(request):
if 'form.submitted' in request.params:
name= request.params['name']
input_file=request.POST['stl'].filename
vertices, normals = [],[]
for line in input_file:
parts = line.split()
if parts[0] == 'vertex':
vertices.append(map(float, parts[1:4]))
elif parts[0] == 'facet':
normals.append(map(float, parts[2:5]))
ordering=[]
N=len(normals)
...parsing data...
data=[vertices,ordering]
jsdata=json.dumps(data)
renderer_dict = dict(name=name,data=jsdata)
app_dir = request.registry.settings['upload_dir']
filename = "%s/%s" % (app_dir , name)
html_string = render('tutorial:templates/view.pt', renderer_dict, request=request)
with open(filename,'w') as file:
file.write(new_comment)
return HTTPFound(location=request.static_url('tutorial:pages/%(pagename)s.html' % {'pagename': name}))
return {}
現在,當我嘗試上傳文件,我收到此錯誤信息:IOError: [Errno 2] No such file or directory: u'/path/pages/one'
(一個是名稱變量)我相信這是因爲我錯誤地定義了app_dir變量。我希望文件名是使用上面定義的名稱變量創建的新文件的URL(以便可以通過www.domain.com/pages/name訪問它)。這裏是我的應用程序的文件結構:
env
tutorial
tutorial
templates
home.pt
static
pages
(name1)
(name2)
(name3)
....
views.py
__init__.py
在我初始化的.py我:
config.add_static_view(name='path/pages/', path=config.registry.settings['upload_dir'])
在我development.ini文件我有
[app:main]
use = egg:tutorial
upload_dir = /path/pages
編輯:如果任何人有一個想法,爲什麼這個問題沒有得到太多的關注,我很樂意聽到它。
所以在這種情況下是不是「外部可配置點放置它」的頁面目錄?如果我使可寫,而不是路徑/到/可寫/上傳/目錄將工作?我已經更新了顯示我添加靜態視圖的問題。 – BigBoy1337 2013-02-13 05:27:50
,你能解釋一下你在哪裏找到[app:main]的用法,並使用= egg:tutorial?我無法弄清楚他們的意思,在http://docs.pylonsproject.org/en/latest/docs/pyramid.html – BigBoy1337 2013-02-13 05:30:24
中找不到任何有關這方面的信息當然,但在您的情況下,您要將上傳內容你的源代碼樹,這真的很不好意思。 – 2013-02-13 17:08:48