Ich möchte einen Seitenzähler haben, der die Anzahl der Besucher anzeigt, die eine bestimmte Seite auf meiner Website angesehen haben. Ist es möglich, dies mit Django zu tun?Zugriffszähler für Seiten in Django
Antwort
Es gibt eine Django-App für dieses Problem namens django-hitcount. Es ist einfach zu verwenden und in jedem Ihrer Projekte wiederverwendbar.
seine guten Werkzeuge ich benutzte es sehr vielen Dank – mohammadmonther
gute App, vielen Dank! – inoks
Ein "Seitenzähler" ist was? Ein persistenter Datenbestand, der von View-Funktionen aktualisiert und von einer Vorlage angezeigt wird.
Wie Sie sicherlich bereits wissen, haben alle Django-Dinge die folgenden Teile.
- Modell
- View-Funktion
- Vorlage
Modell
Wenn Sie den Seitenzähler in der Datenbank behalten wollen, müssen Sie ein Modell Django.
class PageCounter(Model):
Sie müssen eine Zeile in dieses Modell einfügen. Normalerweise wird ein "Fixture" dabei helfen, da es eine Zeile ist und Sie es nur einmal eingeben, wenn Sie eine Syncdb machen.
View-Funktion
Dann müssen Sie den Seitenzähler in Ihrer View-Funktion holen und zu aktualisieren.
pageCounter= PageCounter.objects.all()[0]
pageCounter.count += 1
pageCounter.save()
Vorlage
Nun müssen Sie den Wert auf Ihre Vorlagen liefern, damit es angezeigt werden kann.
Vielen Dank für diese Idee ... – mohammadmonther
Was ist mit Seitenauffrischungen? – maazza
yeah @Lott was ist mit Seitenaktualisierungen, können wir tun -> erstellen Sie ein Feld mit vielenTransaktion mit Benutzer in der Post und inkrementieren den Benutzerzähler in der Detailansicht des Beitrags, dann können wir die Ansichten zeigen, indem Sie nur die Anzahl von den Benutzern im Feld, aber das funktioniert nicht für anonymer Benutzer – babygame0ver
Ich weiß, dies ist ein alter Beitrag, aber gelegentlich Leute könnten die gleiche Frage haben.
Wenn Sie einen Dritten Bibliothek zu vermeiden und die Zähler verhindern auf jeder Seite aktualisiert aktualisieren Sie die folgende Mixin (auf S. Lott Antwort Gebäude) tun könnte
class BlogPostCounterMixin(object):
def get_context_data(self, **kwargs):
context = super(BlogPostCounterMixin, self).get_context_data(**kwargs)
blog_post_slug = self.kwargs['slug']
if not blog_post_slug in self.request.session:
bp = BlogPost.objects.filter(slug=blog_post_slug).update(counter=+1)
# Insert the slug into the session as the user has seen it
self.request.session[blog_post_slug] = blog_post_slug
return context
Es wenn das zugegriffen Modell überprüft wurde in der Sitzung gespeichert. Wenn es in der Sitzung gespeichert wurde, wird das Inkrementieren übersprungen, andernfalls erhöht es den Zähler und fügt der Sitzung den Block des Modells hinzu, wodurch Inkremente für Seitenaktualisierungen verhindert werden.
Hinweis: Dies ist ein Mixin, den Sie in Ihrer Ansicht hinzufügen müssen.
- 1. Beschleunigte mobile Seiten in Django?
- 2. django - mehrere Seiten drucken
- 3. Django Sitemap statische Seiten
- 4. Anzeigen einfacher HTML-Seiten DJango
- 5. Mehrere Seiten mit Reportlab - Django
- 6. Einbinden bestehender HTML-Seiten in Django
- 7. Django Internationalisierung für Admin-Seiten - übersetzen Modellnamen und Attribute
- 8. Bereitstellen sicherer Django-Seiten mit HTTPS
- 9. , wie Entscheidungen auf Admin-Seiten ändern - django
- 10. django-cms Benutzer kann keine Seiten hinzufügen
- 11. Hinzufügen neuer Seiten zu Django Admin
- 12. Django-Caching für Subdomains
- 13. Favicon für alle Seiten in meiner Website
- 14. CSS überschreiben für verschiedene Seiten in Einzelseitenanwendung
- 15. Einführung Seiten für Kategorien in Pelican
- 16. Caching für anonyme Benutzer in Django
- 17. Keypress-Funktion für zwei Seiten
- 18. django-cms „Übersichtsansicht“ aggregieren Inhalte von mehreren Seiten
- 19. Kann ich die django debug_toolbar auf den Admin-Seiten verwenden?
- 20. FrontController-Implementierung für JSP-Seiten
- 21. Django: Erstellen zusätzlicher Modeladmin Seiten von admin Aktion geladen
- 22. Best Practices für Permalink für Ajax-Seiten
- 23. zurück nächste Seiten für WinForms
- 24. GitHub Seiten für privates Repository
- 25. Meta-Tags für einzelne Seiten
- 26. Github-Seiten für Github-Projekt
- 27. Gute Seiten für Grafiken für iPhone Apps
- 28. Welche Spickzettel existieren für Django?
- 29. kann ich Django-Kommentare auf anderen Seiten verwenden?
- 30. Versteckte Seiten in verschiedenen Seiten anzeigen
Vielen Dank für Beratung ..... Im tut mir leid, aber mein Englisch ist ein paar – mohammadmonther