2012-08-08 4 views
0

난 그냥 blobstoreHTML5 오디오를 사용하는 방법을 알아 내려고하고 있습니다.appengine 및 html5 오디오

내 코드는 작업 코드에서 약간만 수정되므로 큰 변경이 필요하지 않습니다.

class data(webapp2.RequestHandler): 
def get(self): 
    a = db.GqlQuery("SELECT * FROM UserPhoto") 
    blob = a[1].blob_key 


    self.redirect('/Serve/%s' % blob.key()) 



class ServeHandler(Handler, blobstore_handlers.BlobstoreDownloadHandler): 
def get(self, audio_key): 
    if not blobstore.get(audio_key): 
     self.error(404) 
    else: 
     self.send_blob(audio_key) 
     self.redirect('/music') 

class music(Handler): 
def get(self): 
    self.render("music.html") 

이 오디오가 재생됩니다 HTML입니다 :

<audio controls="controls"> 
<source src="/Serve/%s"/> 
Your browser does not support the audio element. 

및 오류가 실제 키 변수에 넣어 가지고 당신이하지 않는 것

"GET /Serve/%s HTTP/1.1" 404 - 
+0

html src에 약간의 오타가 있지만 따옴표가 잘못 입력되었지만 오류가 발생하지 않습니다. – tanky

+0

html이 실제로/Serve/% s를 가리키고 있습니까? 아니면 그냥 템플릿입니까? 또한 ServeHandler에서/music으로 리디렉션하는 이유는 무엇입니까? wsgi 앱 구성을 게시하여 경로를 볼 수 있습니까? 데이터의 리디렉션도 이상하게 보입니다. 대신 blob_key (UserPhoto의 것)를 사용하여 음악 플레이어 html을 생성해야합니다. –

답변

3

입니다 HTML. /serve/%s은 분명히 잘못되었습니다. 장고 템플릿은 파이썬 문자열 대체를 사용하지 않고, 대체 할 항목을 제공하지 않았습니다.

get 핸들러에서 템플릿에 BLOB 키를 전달한 다음 <source src="/Serve/{{ blob_key }}"/>으로 참조해야합니다.