Analysieren Sie die Verwendung von Cookies in Django
Cookie ist eine vom Browser auf dem Client hinterlassene Aufzeichnung. Diese Aufzeichnung kann im Speicher oder auf der Festplatte gespeichert werden. In Django ist das Lesen und Setzen von Cookies sehr einfach. Als nächstes werde ich Ihnen in diesem Artikel die Verwendung von Cookies in Django vorstellen.
Cookie ist ein vom Browser auf dem Client hinterlassener Datensatz Speicher oder auf der Festplatte. Da HTTP-Anfragen zustandslos sind, kann der Server oder Client den Status in der Sitzung aufrechterhalten, indem er Cookie-Datensätze liest. Ein häufiges Anwendungsszenario ist beispielsweise der Anmeldestatus. In Django ist das Lesen und Setzen von Cookies sehr einfach. Das Format des Cookies selbst ähnelt einem Wörterbuch, es kann also über den Schlüssel oder get der Anfrage abgerufen werden. Anschließend wird seine Einstellung über set_cookie des Antwortobjekts festgelegt Ablaufzeit auf die aktuelle Zeit.
Cookie abrufen:
request.COOKIES['key'] request.get_signed_cookie(key, default=RAISE_ERROR, salt='', max_age=None) 参数: default: 默认值 salt: 加密盐 max_age: 后台控制过期时间
Cookie setzen:
rep = HttpResponse(...) 或 rep = render(request, ...) rep.set_cookie(key,value,...) rep.set_signed_cookie(key,value,salt='加密盐',...) 参数: key, 键 value='', 值 max_age=None, 超时时间 expires=None, 超时时间(IE requires expires, so set it if hasn't been already.) path='/', Cookie生效的路径,/ 表示根路径,特殊的:跟路径的cookie可以被任何url的页面访问 domain=None, Cookie生效的域名 secure=False, https传输 httponly=False 只能http协议传输,无法被JavaScript获取(不是绝对,底层抓包可以获取到也可以被覆盖)
Beispiel 1: Richten Sie eine Anmeldeschnittstelle ein, eine Sprungschnittstelle nach erfolgreicher Indexanmeldung. Wenn Sie nicht angemeldet sind, wird automatisch zur Anmeldeschnittstelle gesprungen
Ansichten. py
def index(reqeust): # 获取当前已经登录的用户 v = reqeust.COOKIES.get('username111') if not v: return redirect('/login/') return render(reqeust,'index.html',{'current_user': v})
Beachten Sie, dass es zwei Möglichkeiten gibt, das Cookie-Timeout festzulegen: Eine besteht darin, max_age direkt anzugeben (Timeout nach N Sekunden), die andere darin, Ablaufdatum anzugeben gefolgt von einem bestimmten Zeitobjekt
httponly kann verhindern, dass JavaScript diesen Wert erhält, aber es ist eigentlich nutzlos. Chrome oder Packet Capture können problemlos alle Cookies abrufen
index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <h1>欢迎登录:{{ current_user }}</h1> </body> </html>
login.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <form action="/login/" method="POST"> <input type="text" name="username" placeholder="用户名" /> <input type="password" name="pwd" placeholder="密码" /> <input type="submit" /> </form> </body> </html>
Beispiel 2:
Im echten Leben dieses Verifizierungscookie Funktion wird normalerweise verwendet. Schreiben Sie sie als Dekorator, sodass Sie sie direkt für andere Funktionen aufrufen können
Änderungsbeispiel 1
def auth(func): def inner(reqeust,*args,**kwargs): v = reqeust.COOKIES.get('username111') if not v: return redirect('/login/') return func(reqeust, *args,**kwargs) return inner @auth def index(reqeust): # 获取当前已经登录的用户 v = reqeust.COOKIES.get('username111') return render(reqeust,'index.html',{'current_user': v})
Beispiel 3: Wir Wissen Sie, dass wir fbv oder cbv verwenden können, um Funktionen weiterzuleiten. Beispiel 2 verwendet die fbv-Methode, die auch mit cbv implementiert werden kann. Wenn Sie nur eine Methode dekorieren möchten, fügen Sie einfach @method_decorator direkt vor der Methode hinzu Dekorieren Sie die Oberseite der gesamten Klasse
views.py
@method_decorator(auth,name='dispatch') class Order(views.View): # @method_decorator(auth) # def dispatch(self, request, *args, **kwargs): # return super(Order,self).dispatch(request, *args, **kwargs) # @method_decorator(auth) def get(self,reqeust): v = reqeust.COOKIES.get('username111') return render(reqeust,'index.html',{'current_user': v}) def post(self,reqeust): v = reqeust.COOKIES.get('username111') return render(reqeust,'index.html',{'current_user': v}) urls.py url(r'^order/', views.Order.as_view()),
user_list.html Hier ist ein JQuery-Plugin, das das Lesen und Setzen von Cookies erleichtert. Darüber hinaus beschränken wir auch den Umfang der Cookie-Nutzung, nicht standardmäßig alle Bereiche, sondern nur auf /user_list Im Pfad
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <style> .go{ width:20px; border: solid 1px; color: #66512c; display: inline-block; padding: 5px; } .pagination .page{ border: solid 1px; color: #66512c; display: inline-block; padding: 5px; background-color: papayawhip; margin: 5px; } .pagination .page.active{ background-color: brown; color: white; } </style> </head> <body> <ul> {% for item in li %} {% include 'li.html' %} {% endfor %} </ul> <p> <select id="ps" onchange="changePageSize(this)"> <option value="10">10</option> <option value="30">30</option> <option value="50">50</option> <option value="100">100</option> </select> </p> <p class="pagination"> {{ page_str }} </p> <script src="/static/jquery-1.12.4.js"></script> <script src="/static/jquery.cookie.js"></script> <script> $(function(){ var v = $.cookie('per_page_count', {'path': "/user_list/`"}); console.log(v) $('#ps').val(v); }); function changePageSize(ths){ var v = $(ths).val(); console.log(v); $.cookie('per_page_count',v, {'path': "/user_list/"}); location.reload(); } </script> </body> </html>
Das obige ist der detaillierte Inhalt vonAnalysieren Sie die Verwendung von Cookies in Django. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Django und Flask sind beide führend bei Python-Web-Frameworks und haben beide ihre eigenen Vorteile und anwendbaren Szenarien. In diesem Artikel wird eine vergleichende Analyse dieser beiden Frameworks durchgeführt und spezifische Codebeispiele bereitgestellt. Entwicklungseinführung Django ist ein Web-Framework mit vollem Funktionsumfang, dessen Hauptzweck darin besteht, schnell komplexe Webanwendungen zu entwickeln. Django bietet viele integrierte Funktionen wie ORM (Object Relational Mapping), Formulare, Authentifizierung, Verwaltungs-Backend usw. Diese Funktionen ermöglichen es Django, große Mengen zu verarbeiten

Django ist ein vollständiges Entwicklungsframework, das alle Aspekte des Webentwicklungslebenszyklus abdeckt. Derzeit ist dieses Framework eines der beliebtesten Web-Frameworks weltweit. Wenn Sie vorhaben, mit Django Ihre eigenen Webanwendungen zu erstellen, müssen Sie die Vor- und Nachteile des Django-Frameworks verstehen. Hier finden Sie alles, was Sie wissen müssen, einschließlich spezifischer Codebeispiele. Vorteile von Django: 1. Schnelle Entwicklung – Djang kann Webanwendungen schnell entwickeln. Es bietet eine umfangreiche Bibliothek und interne

So aktualisieren Sie die Django-Version: Schritte und Überlegungen, spezifische Codebeispiele erforderlich. Einführung: Django ist ein leistungsstarkes Python-Web-Framework, das kontinuierlich aktualisiert und aktualisiert wird, um eine bessere Leistung und mehr Funktionen bereitzustellen. Für Entwickler, die ältere Versionen von Django verwenden, kann die Aktualisierung von Django jedoch einige Herausforderungen mit sich bringen. In diesem Artikel werden die Schritte und Vorsichtsmaßnahmen zum Aktualisieren der Django-Version vorgestellt und spezifische Codebeispiele bereitgestellt. 1. Sichern Sie die Projektdateien, bevor Sie Djan aktualisieren

Immer mehr Benutzer beginnen mit der Aktualisierung des Win11-Systems. Da jeder Benutzer unterschiedliche Nutzungsgewohnheiten hat, verwenden viele Benutzer immer noch den IE11-Browser. Was soll ich also tun, wenn das Win11-System den IE-Browser nicht verwenden kann? Unterstützt Windows11 immer noch ie11? Werfen wir einen Blick auf die Lösung. Lösung des Problems, dass Win11 den ie11-Browser nicht verwenden kann 1. Klicken Sie zunächst mit der rechten Maustaste auf das Startmenü und wählen Sie „Eingabeaufforderung (Administrator)“, um es zu öffnen. 2. Geben Sie nach dem Öffnen direkt „Netshwinsockreset“ ein und drücken Sie zur Bestätigung die Eingabetaste. 3. Geben Sie nach der Bestätigung „netshadvfirewallreset&rdqu“ ein

Mit der Popularität des Internets ist die Verwendung von Browsern zum Surfen im Internet zu einer Lebensweise geworden. Bei der täglichen Verwendung von Browsern stoßen wir häufig auf Situationen, in denen wir Kontokennwörter eingeben müssen, z. B. beim Online-Shopping, bei sozialen Netzwerken, bei E-Mails usw. Diese Informationen müssen vom Browser aufgezeichnet werden, damit sie bei Ihrem nächsten Besuch nicht erneut eingegeben werden müssen. Was sind Cookies? Bei einem Cookie handelt es sich um eine kleine Datendatei, die vom Server an den Browser des Benutzers gesendet und lokal gespeichert wird. Sie enthält das Benutzerverhalten einiger Websites.

Django ist ein in Python geschriebenes Webanwendungs-Framework, das Wert auf schnelle Entwicklung und saubere Methoden legt. Obwohl Django ein Web-Framework ist, müssen Sie zur Beantwortung der Frage, ob Django ein Front-End oder ein Back-End ist, ein tiefes Verständnis der Konzepte von Front-End und Back-End haben. Das Front-End bezieht sich auf die Schnittstelle, mit der Benutzer direkt interagieren, und das Back-End bezieht sich auf serverseitige Programme. Sie interagieren mit Daten über das HTTP-Protokoll. Wenn das Front-End und das Back-End getrennt sind, können die Front-End- und Back-End-Programme unabhängig voneinander entwickelt werden, um Geschäftslogik bzw. interaktive Effekte sowie den Datenaustausch zu implementieren.

Tipps zum Erstellen von Projekten mit dem Django-Framework in PyCharm, die spezifische Codebeispiele erfordern. Django ist ein leistungsstarkes Python-Web-Framework, das eine Reihe von Tools und Funktionen für die schnelle Entwicklung von Webanwendungen bereitstellt. PyCharm ist eine in Python entwickelte integrierte Entwicklungsumgebung (IDE), die eine Reihe praktischer Funktionen und Tools zur Steigerung der Entwicklungseffizienz bietet. Durch die Kombination von Django und PyCharm können Projekte schneller und bequemer erstellt werden

In letzter Zeit haben viele Win10-Benutzer festgestellt, dass ihr IE-Browser bei der Verwendung von Computerbrowsern immer automatisch zum Edge-Browser springt. Wie kann man also den automatischen Sprung zum Edge beim Öffnen des IE in Win10 deaktivieren? Lassen Sie diese Website den Benutzern sorgfältig vorstellen, wie sie beim Öffnen des IE in Win10 automatisch zum Rand springen und schließen. 1. Wir melden uns beim Edge-Browser an, klicken auf ... in der oberen rechten Ecke und suchen nach der Dropdown-Einstellungsoption. 2. Nachdem wir die Einstellungen eingegeben haben, klicken Sie in der linken Spalte auf Standardbrowser. 3. Abschließend aktivieren wir in der Kompatibilität das Kontrollkästchen, um ein erneutes Laden der Website im IE-Modus zu verhindern, und starten den IE-Browser neu.
