2012-04-12 1 views
0

Ich bin sehr neu in Django und versuche, meine erste gute App zu bauen. Ich habe mich entschieden, eine Website mit geringer Komplexität zu erstellen, und wählte: http://trailertrack.me/Random Trailer App in Django

Ich fragte mich, ob Sie mir sagen könnten, welche Schritte zu nehmen.

Im Moment sieht meine views.py Datei wie folgt (Ich versuche, nur ein bestimmtes Video im Moment zu zeigen):

from django.http import HttpResponse 
from django.shortcuts import render_to_response 
import gdata.youtube 
import gdata.youtube.service 

yt_service = gdata.youtube.service.YouTubeService() 
yt_service.ssl = True 

def index(request): 
    message = "Welcome, and enjoy the show!" 
    context = { 
      'message': message, 
    } 
    return render_to_response('index.html', context) 

def video(request): 
    t = loader.get_template('index.html') 
    specificentry = yt_service.GetYouTubeVideoEntry(video_id='1g4PLj0PlOM') 
    return HttpResponse(t.render(specificentry)) 

Vielen Dank für Ihre Beratung!

+0

Zunächst einmal wollen Sie normalerweise 'loader.get_template' nicht machen; Verwenden Sie 'django.shortcuts.render (Anfrage, 'index.html', {'video_entry': specificentry}}' '. Darüber hinaus scheint es, als ob du einen Weg brauchst, um einen zufälligen Eintrag, einen "nächsten" Knopf usw. zu bekommen. Welche spezifischen Probleme hast du? – Dougal

+0

Danke Dougal.Nun, ein kleines Problem ist, ich bekomme das: "Kein Modul namens gdata.youtube" – Edward

+0

Abgesehen davon, nicht wirklich sicher, wie man den Rest macht. Die API-Dokumente gehen davon aus, dass Sie Erfahrung haben. Was wären deine nächsten Schritte? – Edward

Antwort

0

Okay, hier ist ein grober Überblick, wie ich das machen würde. Die Reihenfolge ist nicht so wichtig; Es gibt offensichtlich einige Abhängigkeiten zwischen ihnen, aber tu sie in der Reihenfolge, in der du sie anpacken möchtest.

Auch, wenn Sie neu sind, würde ich dringend empfehlen, entweder git oder, wenn Sie bereits damit vertraut sind, mercurial für die Versionskontrolle und virtualenv für die Verfolgung von Abhängigkeiten.

  1. Erhalten Sie Ihre aktuellen Ansichten arbeiten, so dass Sie ein bestimmtes Video mit einer vernünftig aussehenden Vorlage und so weiter sehen können.
  2. Fügen Sie eine Möglichkeit hinzu, mehr als dieses eine Video anzuzeigen. Ein einfacher Weg, dies zu tun, ist ein einfaches Django-Modell für Videos zu erstellen, mit im Grunde nur eine YouTube-ID, und schalten Sie die Admin-Site, so dass Sie Videos manuell hinzufügen können.
  3. Lassen Sie die Ansicht bei jeder Ladung ein zufälliges Video anzeigen.
  4. Fügen Sie eine Schaltfläche "next" hinzu, die nur die Seite neu lädt. Sie können entweder eine Django-Sitzungsvariable/GET-Variable verwenden, um zu vermeiden, dass das gleiche Video erneut angezeigt wird, oder einfach davon ausgehen, dass dies nicht oft genug geschieht, um ein Problem zu sein, wenn Sie viele Videos haben.
  5. Fügen Sie einen Weg, um neue Videos von Youtube (semi-) automatisch zu bekommen. Eine Möglichkeit hierzu:
    • Fügen Sie Ihrem Videomodell ein Feld "Ist veröffentlicht" hinzu, und zeigen Sie der Nutzeroberfläche nur veröffentlichte Videos an.
    • Geben Sie einen Verwaltungsbefehl ein, der eine Youtube-Suche nach "trailer" oder ähnlichem durchführt, und fügt der Datenbank neue Videos (unveröffentlicht) hinzu. (Suchen Sie mindestens nach doppelten IDs.) Führen Sie das automatisch in Cron alle paar Stunden oder Tage oder was auch immer aus.
    • Gehen Sie regelmäßig in den Admin und fügen Sie neue Videos hinzu. Wenn Sie möchten, können Sie eine benutzerdefinierte Admin-Ansicht erstellen, die eine Reihe von ausstehenden Videos auf einer Seite mit ihren Metadaten, dem eigentlichen Video, so dass Sie es sehen können, und anderen Videos, die im System möglicherweise doppelt vorhanden sind, zusammen mit AJAX zeigt Schaltflächen veröffentlichen und löschen (Die Duplikate Sache ist ein wenig härter können wählen Sie wahrscheinlich tun nur tf-idf weighting auf den Metadaten ähnliche Videos zu finden.
  6. einen Weg hinzufügen für Benutzer eingeloggt sein (das Standard-Django Benutzer System, Facebook/Twitter-Integration, was auch immer) Und like/upvote/Videos vielleicht ablehnen. Denken Sie daran. Fügen Sie Video-Empfehlungen mit einer Form von collaborative filtering.
  7. Sie haben jetzt mehr Funktionen als die ursprüngliche Website! Denken Sie an andere coole und implementieren Sie auch. :)
+0

Süßer Doug! Sehr hilfreich :) – Edward