Table des matières
Session et Cookie
Utilisation de la session
激活SessionMiddleware
Session的配置
使用Session
Cookie的使用
读取Cookie
写入Cookie
Sélection de Session et Cookie
Maison développement back-end Tutoriel Python Comment gérer la session et les cookies en Python

Comment gérer la session et les cookies en Python

May 10, 2023 am 11:19 AM
python cookie session

Dans le développement Web, Session et Cookie sont deux technologies courantes utilisées pour transférer des données entre le client et le serveur. Session est une technologie côté serveur qui enregistre les données utilisateur côté serveur, tandis que Cookie est une technologie côté client qui enregistre les données utilisateur dans le navigateur.

Utilisation de la session

Session est une technologie qui enregistre les données des utilisateurs côté serveur. Dans Django, la session est implémentée via SessionMiddleware, qui lit les données de session de l'utilisateur depuis le stockage avant de traiter chaque requête et les enregistre dans l'attribut request .session, afin que la fonction d'affichage puisse accéder aux données de session. SessionMiddleware来实现的,该中间件会在每个请求处理之前将用户的Session数据从存储中读取出来,并将其保存在request.session属性中,这样视图函数就可以访问Session数据了。

激活SessionMiddleware

要使用Session,需要在Django项目的配置文件中激活SessionMiddleware,这样Django就会自动为每个请求创建一个Session对象。在MIDDLEWARE中添加django.contrib.sessions.middleware.SessionMiddleware即可激活SessionMiddleware

MIDDLEWARE = [
    # ...
    'django.contrib.sessions.middleware.SessionMiddleware',
    # ...
]
Copier après la connexion

Session的配置

Django的Session有多种存储方式,包括数据库、缓存、文件系统等。在Django的配置文件中,可以通过SESSION_ENGINE来指定Session的存储方式,通过SESSION_COOKIE_AGE来指定Session的过期时间。

SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
SESSION_CACHE_ALIAS = 'default'
SESSION_COOKIE_AGE = 86400
Copier après la connexion

上面的配置表示将Session存储到缓存中,使用默认的缓存,Session的过期时间为1天。

使用Session

在视图函数中使用Session非常简单,只需要访问request.session属性即可。以下是一个使用Session的例子:

def index(request):
    count = request.session.get('count', 0)
    request.session['count'] = count + 1
    return HttpResponse('count: %d' % count)
Copier après la connexion

在上面的例子中,我们访问了request.session属性,并使用get方法获取了名为count的Session数据。如果Session中不存在count数据,get方法将会返回默认值0。然后,我们将count加1并将其保存到Session中。当用户再次访问该视图函数时,我们就可以获取到之前保存的count数据,然后将其加1并更新到Session中。

需要注意的是,Session中保存的数据是有大小限制的。在Django的配置文件中,可以通过SESSION_COOKIE_MAX_SIZE来指定Session的大小限制。如果Session中保存的数据超过了限制,将会引发SuspiciousOperation异常。

Cookie的使用

Cookie是一种在客户端保存用户数据的技术。在Django中,可以使用HttpRequestHttpResponse对象来读写Cookie。

读取Cookie

HttpRequest对象中,可以通过COOKIES属性来访问所有的Cookie。以下是一个读取Cookie的例子:

def index(request):
    count = request.COOKIES.get('count', 0)
    response = HttpResponse('count: %d' % count)
    response.set_cookie('count', count + 1)
    return response
Copier après la connexion

在上面的例子中,我们访问了request.COOKIES属性,并使用get方法获取了名为count的Cookie。如果Cookie中不存在count数据,get方法将会返回默认值0。然后,我们将count加1并将其保存到Cookie中。最后,我们返回一个HttpResponse对象,并使用set_cookie方法将更新后的count保存到Cookie中。

需要注意的是,Cookie中保存的数据也是有大小限制的。在不同的浏览器中,Cookie的大小限制可能不同。在Django中,可以通过SESSION_COOKIE_MAX_SIZE来指定Cookie的大小限制。如果Cookie中保存的数据超过了限制,将会引发SuspiciousOperation异常。

写入Cookie

HttpResponse对象中,可以使用set_cookie方法来写入Cookie。以下是一个写入Cookie的例子:

def index(request):
    response = HttpResponse('Hello, world!')
    response.set_cookie('name', 'value', max_age=3600, expires=None, path='/', domain=None, secure=False, httponly=False, samesite=None)
    return response
Copier après la connexion

在上面的例子中,我们创建了一个HttpResponse对象,并使用set_cookie方法将名为name、值为value的Cookie写入响应中。max_age参数指定Cookie的最大寿命,单位为秒。expires参数指定Cookie的过期时间,如果不指定,则表示Cookie在浏览器关闭时过期。path参数指定Cookie的作用路径,即只有在指定路径下的请求才会携带该Cookie。domain参数指定Cookie的作用域,即只有访问指定域名下的请求才会携带该Cookie。secure参数指定Cookie是否只能通过HTTPS协议传输。httponly参数指定Cookie是否只能通过HTTP协议访问,而不能通过JavaScript访问。samesite

Activer SessionMiddleware#🎜🎜##🎜🎜#Pour utiliser Session, vous devez activer SessionMiddleware dans le fichier de configuration du projet Django, afin que Django en crée automatiquement un pour chaque requête Un objet Session. Ajoutez django.contrib.sessions.middleware.SessionMiddleware à MIDDLEWARE pour activer SessionMiddleware. #🎜🎜#rrreee#🎜🎜#Configuration de la session#🎜🎜##🎜🎜#La session de Django dispose d'une variété de méthodes de stockage, notamment des bases de données, des caches, des systèmes de fichiers, etc. Dans le fichier de configuration Django, vous pouvez spécifier la méthode de stockage de la session via SESSION_ENGINE et spécifier le délai d'expiration de la session via SESSION_COOKIE_AGE. #🎜🎜#rrreee#🎜🎜#La configuration ci-dessus indique que la session est stockée dans le cache En utilisant le cache par défaut, le délai d'expiration de la session est de 1 jour. #🎜🎜##🎜🎜#Utiliser Session#🎜🎜##🎜🎜#Utiliser Session dans une fonction d'affichage est très simple, il suffit d'accéder à la propriété request.session. Voici un exemple d'utilisation de Session : #🎜🎜#rrreee#🎜🎜#Dans l'exemple ci-dessus, nous accédons à la propriété request.session et utilisons la méthode get pour obtenir des données de session nommées count. S'il n'y a pas de données count dans la session, la méthode get renverra la valeur par défaut 0. Ensuite, nous incrémentons count de 1 et l'enregistrons dans la session. Lorsque l'utilisateur accède à nouveau à la fonction d'affichage, nous pouvons obtenir les données count précédemment enregistrées, puis y ajouter 1 et les mettre à jour dans la session. #🎜🎜##🎜🎜#Il est à noter que les données enregistrées en Session ont une taille limite. Dans le fichier de configuration Django, vous pouvez spécifier la limite de taille de session via SESSION_COOKIE_MAX_SIZE. Si les données enregistrées dans la session dépassent la limite, une exception SuspiciousOperation sera levée. #🎜🎜##🎜🎜#Utilisation des Cookies#🎜🎜##🎜🎜#Cookie est une technologie qui enregistre les données des utilisateurs côté client. Dans Django, vous pouvez utiliser les objets HttpRequest et HttpResponse pour lire et écrire des cookies. #🎜🎜##🎜🎜#Read Cookie#🎜🎜##🎜🎜#Dans l'objet HttpRequest, vous pouvez accéder à tous les cookies via l'attribut COOKIES. Voici un exemple de lecture de cookies : #🎜🎜#rrreee#🎜🎜#Dans l'exemple ci-dessus, nous accédons à la propriété request.COOKIES et utilisons la méthode get A un cookie nommé count a été obtenu. Si les données count n'existent pas dans le cookie, la méthode get renverra la valeur par défaut 0. Ensuite, nous incrémentons count de 1 et l'enregistrons dans le cookie. Enfin, nous renvoyons un objet HttpResponse et utilisons la méthode set_cookie pour enregistrer le compte mis à jour dans le cookie. #🎜🎜##🎜🎜#Il est à noter que les données stockées dans les cookies ont également des limites de taille. Les limites de taille des cookies peuvent différer selon les navigateurs. Dans Django, vous pouvez spécifier la limite de taille des cookies via SESSION_COOKIE_MAX_SIZE. Si les données stockées dans le cookie dépassent la limite, une exception SuspiciousOperation sera levée. #🎜🎜##🎜🎜#Write Cookie#🎜🎜##🎜🎜#Dans l'objet HttpResponse, vous pouvez utiliser la méthode set_cookie pour écrire un Cookie. Voici un exemple d'écriture dans Cookie : #🎜🎜#rrreee#🎜🎜#Dans l'exemple ci-dessus, nous créons un objet HttpResponse et utilisons la méthode set_cookie pour A un cookie nommé name et une valeur value est écrit dans la réponse. Le paramètre max_age spécifie la durée de vie maximale du cookie, en secondes. Le paramètre expires spécifie le délai d'expiration du cookie. S'il n'est pas spécifié, cela signifie que le cookie expire à la fermeture du navigateur. Le paramètre path spécifie le chemin du cookie, c'est-à-dire que seules les requêtes sous le chemin spécifié porteront le cookie. Le paramètre domain spécifie la portée du cookie, c'est-à-dire que seules les demandes d'accès au nom de domaine spécifié porteront le cookie. Le paramètre secure précise si le cookie peut être transmis uniquement via le protocole HTTPS. Le paramètre httponly précise si le cookie est accessible uniquement via le protocole HTTP et non via JavaScript. Le paramètre samesite spécifie l'attribut SameSite du cookie, qui précise si le cookie ne peut être utilisé qu'au sein du même site. #🎜🎜#

Lors de l'utilisation de Session et Cookie, vous devez choisir la technologie appropriée en fonction du scénario d'application spécifique. De manière générale, si vous avez besoin de stocker une grande quantité de données ou si vous devez assurer la sécurité des données, vous devez utiliser la technologie Session ; si vous devez stocker une petite quantité de données ou si vous devez partager des données entre clients, vous devez utiliser la technologie Cookie ;

De plus, il convient de noter que la session et les cookies présentent des risques de sécurité. Si la session ou le cookie est intercepté par un attaquant malveillant, les données de l'utilisateur seront divulguées. Par conséquent, lors de l'utilisation de sessions et de cookies, des mesures de sécurité appropriées doivent être sélectionnées en fonction de scénarios d'application spécifiques, tels que l'utilisation du protocole HTTPS pour transmettre des données, la définition de l'attribut HttpOnly des cookies, etc.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

<🎜>: Dead Rails - Comment apprivoiser les loups
4 Il y a quelques semaines By DDD
Niveaux de force pour chaque ennemi et monstre de R.E.P.O.
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
<🎜>: Grow A Garden - Guide de mutation complet
2 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel Java
1660
14
Tutoriel PHP
1261
29
Tutoriel C#
1234
24
PHP et Python: différents paradigmes expliqués PHP et Python: différents paradigmes expliqués Apr 18, 2025 am 12:26 AM

PHP est principalement la programmation procédurale, mais prend également en charge la programmation orientée objet (POO); Python prend en charge une variété de paradigmes, y compris la POO, la programmation fonctionnelle et procédurale. PHP convient au développement Web, et Python convient à une variété d'applications telles que l'analyse des données et l'apprentissage automatique.

Choisir entre PHP et Python: un guide Choisir entre PHP et Python: un guide Apr 18, 2025 am 12:24 AM

PHP convient au développement Web et au prototypage rapide, et Python convient à la science des données et à l'apprentissage automatique. 1.Php est utilisé pour le développement Web dynamique, avec une syntaxe simple et adapté pour un développement rapide. 2. Python a une syntaxe concise, convient à plusieurs champs et a un écosystème de bibliothèque solide.

PHP et Python: une plongée profonde dans leur histoire PHP et Python: une plongée profonde dans leur histoire Apr 18, 2025 am 12:25 AM

PHP est originaire en 1994 et a été développé par Rasmuslerdorf. Il a été utilisé à l'origine pour suivre les visiteurs du site Web et a progressivement évolué en un langage de script côté serveur et a été largement utilisé dans le développement Web. Python a été développé par Guidovan Rossum à la fin des années 1980 et a été publié pour la première fois en 1991. Il met l'accent sur la lisibilité et la simplicité du code, et convient à l'informatique scientifique, à l'analyse des données et à d'autres domaines.

Python vs JavaScript: la courbe d'apprentissage et la facilité d'utilisation Python vs JavaScript: la courbe d'apprentissage et la facilité d'utilisation Apr 16, 2025 am 12:12 AM

Python convient plus aux débutants, avec une courbe d'apprentissage en douceur et une syntaxe concise; JavaScript convient au développement frontal, avec une courbe d'apprentissage abrupte et une syntaxe flexible. 1. La syntaxe Python est intuitive et adaptée à la science des données et au développement back-end. 2. JavaScript est flexible et largement utilisé dans la programmation frontale et côté serveur.

Comment exécuter le code sublime python Comment exécuter le code sublime python Apr 16, 2025 am 08:48 AM

Pour exécuter le code Python dans le texte sublime, vous devez d'abord installer le plug-in Python, puis créer un fichier .py et écrire le code, et enfin appuyez sur Ctrl B pour exécuter le code, et la sortie sera affichée dans la console.

Où écrire du code dans vscode Où écrire du code dans vscode Apr 15, 2025 pm 09:54 PM

L'écriture de code dans Visual Studio Code (VSCODE) est simple et facile à utiliser. Installez simplement VScode, créez un projet, sélectionnez une langue, créez un fichier, écrivez du code, enregistrez-le et exécutez-le. Les avantages de VSCOD incluent la plate-forme multiplateuse, gratuite et open source, des fonctionnalités puissantes, des extensions riches et des poids légers et rapides.

Le code Visual Studio peut-il être utilisé dans Python Le code Visual Studio peut-il être utilisé dans Python Apr 15, 2025 pm 08:18 PM

VS Code peut être utilisé pour écrire Python et fournit de nombreuses fonctionnalités qui en font un outil idéal pour développer des applications Python. Il permet aux utilisateurs de: installer des extensions Python pour obtenir des fonctions telles que la réalisation du code, la mise en évidence de la syntaxe et le débogage. Utilisez le débogueur pour suivre le code étape par étape, trouver et corriger les erreurs. Intégrez Git pour le contrôle de version. Utilisez des outils de mise en forme de code pour maintenir la cohérence du code. Utilisez l'outil de liaison pour repérer les problèmes potentiels à l'avance.

Comment exécuter Python avec le bloc-notes Comment exécuter Python avec le bloc-notes Apr 16, 2025 pm 07:33 PM

L'exécution du code Python dans le bloc-notes nécessite l'installation du plug-in exécutable Python et du plug-in NPEXEC. Après avoir installé Python et ajouté un chemin à lui, configurez la commande "python" et le paramètre "{current_directory} {file_name}" dans le plug-in nppexec pour exécuter le code python via la touche de raccourci "F6" dans le bloc-notes.

See all articles