Desidero disporre di un contatore di pagine che visualizza il numero di visitatori che hanno visualizzato una determinata pagina sul mio sito. È possibile farlo usando Django?Contatore visite per pagine in Django
risposta
C'è un'app di Django per questo problema chiamato django-hitcount. È facile da usare e riutilizzabile in tutti i tuoi progetti.
i suoi buoni strumenti sono usati grazie mille – mohammadmonther
buona app, grazie mille! – inoks
Un "contatore di pagine" è cosa? Un dato persistente che viene aggiornato dalle funzioni di visualizzazione e visualizzato da un modello.
Come già saprete, tutte le cose di Django hanno le seguenti parti.
- Modello
- View Funzione
- Template
Modello
Se si desidera mantenere il contatore delle pagine nel database, è necessario un modello di Django.
class PageCounter(Model):
È necessario inserire una riga in questo modello. Di solito un "fixture" aiuterà a fare questo, dato che è una riga e la si inserisce solo una volta quando si esegue un syncdb.
View Funzione
allora avete bisogno di recuperare e aggiornare il contatore pagina nel funzione di visualizzazione.
pageCounter= PageCounter.objects.all()[0]
pageCounter.count += 1
pageCounter.save()
Template
Ora è necessario fornire il valore per i modelli in modo che possa essere visualizzato.
grazie per questa idea ... – mohammadmonther
cosa mi dice della pagina di aggiornamento? – maazza
yeah @Lott per quanto riguarda gli aggiornamenti della pagina, possiamo fare come -> creare un campo con molte relazioni con l'utente nel post e incrementare il contatore utente nella visualizzazione dettagli del post, quindi possiamo mostrare le visualizzazioni semplicemente contando il numero degli utenti nel campo, ma che non funzionerà per l'utente anonimo – babygame0ver
So che questo è un vecchio post ma a volte le persone potrebbero avere la stessa domanda.
Se si vuole evitare una libreria di terze parti e impedire che il contatore viene aggiornato ad ogni aggiornamento della pagina è possibile effettuare le seguenti operazioni Mixin (edificio sulla risposta di S. Lott)
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
Esso controlla se il modello di accesso è stato memorizzato nella sessione. Se è stato archiviato nella sessione, salta l'incremento, altrimenti incrementa il contatore e aggiunge lo slug del modello alla sessione impedendo incrementi per gli aggiornamenti della pagina.
Nota: questo è un Mixin che è necessario aggiungere alla vista.
- 1. semplice contatore di visite per pagine viste in rotaie
- 2. 403 pagine in Django
- 3. Contatore Django in loop alla lista indice
- 4. Django contatore modello in cicli annidati
- 5. Incremento atomico di un contatore in django
- 6. Pagine mobili accelerate in django?
- 7. Monitoraggio dei clic degli utenti e delle visite alle pagine in Rails
- 8. Google Analytics può mostrarmi visite per ora?
- 9. Come implementare un contatore di pagine Web affidabili?
- 10. conteggio preciso delle pagine visualizzate in Django
- 11. Più pagine usando Reportlab - Django
- 12. Variabile contatore per classe
- 13. contatore per manubri #each
- 14. Contatore automatico in Ruby per ciascuno?
- 15. Test di pagine django con middleware per multihost
- 16. contatore sincronizzato in clojure
- 17. contatore statico in C++
- 18. Django-MPTT percorso completo per pagine figlio come fare?
- 19. La paginazione di django può fare più pagine per pagina?
- 20. Condivisione di pagine social con django
- 21. Aggiornamento contatore in XQuery
- 22. Visualizzazione di semplici pagine HTML DJango
- 23. Fornitura di pagine Django sicure con HTTPS
- 24. Interrogazione dell'API di Google Analytics per le statistiche di pagine specifiche (filtro per pagine)
- 25. Contatore atomico in gcc
- 26. FragmentPagerAdapter - evitare ricreazione di visite frammenti
- 27. Diverse 404 pagine a seconda dell'applicazione in Django
- 28. dati gerarchici in pagine di amministrazione di Django
- 29. selezionare contatore incremento in mysql
- 30. Contatore di colpi in magento
Grazie per il consiglio .... Mi dispiace ma il mio inglese è poco – mohammadmonther