Cette question est basée sur Cette réponse . p>
Je recherche une fonction similaire à celle de PHP (code> session_start () code> pour python. Je veux accéder à un dictionnaire comme $ _ session code> dans php qui devient disponible après avoir exécuté la commande. P>
5 Réponses :
Python n'est pas une langue Web en soi comme php, de sorte qu'il n'a donc pas été intégré aux caractéristiques Web. Il y a de nombreux modules qui ajoutent cependant cette fonctionnalité, mais vous devrez ensuite être spécifique sur lequel vous utilisez.
Voici comment vous pourriez l'utiliser avec dans des cadres Web plus simples, il n'ya peut-être pas de support de session. Les sessions ne sont pas impossibles à mettre en œuvre vous-même, mais vous pouvez probablement trouver un module autonome qui ajoute la prise en charge en recevant / l'envoi de l'ID de session (l'ID de session est stocké dans un cookie, que presque tous les cadres Web ont une sorte de Prise en charge de.) p> p>
Comme quelqu'un qui vient de PHP et travaille dans Python, je peux vous dire que Django est un Bonne façon de commencer à traiter avec python sur le Web. Ceci est particulièrement vrai si vous utilisez Cadres MVC dans PHP . Cela dit, Django a construit son soutien à la gestion de la session et est documenté ici: P>
http://docs.djangoproject.com/fr/dev/topics / http / sessions / p>
Et en dehors de la curiosité, j'ai pris un coup d'œil sur la gestion des sessions avec un python ordinaire et j'ai trouvé ceci: p>
http://code.activestate.com/recipes/325484/ P >
À en juger par les commentaires, il semblerait que vous feriez mieux d'utiliser l'un des frameworks éprouvés pour vous gérer pour vous. Si vous n'êtes pas intéressé par Django, vous pouvez également Checkout Certains des autres P>
Permettez-moi d'aborder certaines choses qui pourraient être liées à votre question ... Cela peut ne pas être pertinent pour vous, mais je pense que d'autres pourraient venir ici avec exactement la même question et pourrait bénéficier de mon expérience (limitée) ... Parce que j'ai aussi eu cette question à la fois. P>
Parler comme une personne qui est passée de PHP à Python (et n'a jamais regardé en arrière), je pense qu'il est utile de comprendre comment les sessions fonctionnent sous le capot. C'est probablement pas em> une bonne idée de mettre en œuvre votre propre cadre de session, sauf si vous souhaitez comprendre plus sur la gestion des sessions en faisant ou (b) besoin de quelque chose que les cadres existants n'offrent pas. P >
Wikipedia est toujours un bon endroit pour commencer. En bout de ligne: les données de session sont stockées quelque part sur le serveur et indexées par un identifiant unique (hachage de quelque sorte). Cet identifiant est transmis entre le client et le serveur, généralement en tant que cookie ou dans le cadre de la chaîne de requête (l'URL). Pour la sécurité de la sécurité, vous voudrez utiliser une connexion SSL ou valider l'ID de session avec une autre pièce de données (E.G. Adresse IP). Par défaut, PHP stocke des sessions en tant que fichiers, mais sur un serveur partagé susceptible de poser un risque de sécurité, vous souhaiterez peut-être remplacer le moteur de session afin de stocker des sessions dans une base de données. Les cadres Web Python ont des fonctionnalités similaires. P>
Quand j'ai commencé à faire une programmation Web à Python, j'ai remarqué deux choses. Premièrement, PHP a enveloppé beaucoup de magie dans la langue, ce qui facilite la tâche d'un programmeur de départ (moi en 2003) d'apprendre la langue, mais de ne pas m'apprendre beaucoup de choses sur la façon dont tout a fonctionné. Par conséquent, je me suis retrouvé à rechercher de nombreux sujets concernant les applications Web, en particulier la mise en commun de la connexion de la base de données, la cartographie de l'URL, les sessions et le filetage. PHP (et Django, de ce que je comprends) résumé que loin de vous. Deuxièmement, PHP est une langue vraiment merdique;) mais cela fait le travail !! p>
Personnellement, j'utilise Cherrypy pour le développement Web. Il a une gestion de session comme un "outil" que vous pouvez allumer. P>
@San: Je fais mon premier projet de base de données à Stackoverflow.com/questions/1168701/... Vous pouvez voir que je n'ai pas beaucoup demandé à Python, car je sais peu de sa mise en œuvre pratique, par exemple à CGI (i Je ne suis pas sûr que j'en ai besoin ou non). --- J'apprécierais que vous aidiez si vous pouvez ajouter des conseils concrets à votre réponse, par exemple des codes ou des liens vers des projets faciles, ce qui m'aiderait à construire un terrible site de discussion simple.
@ Masi: Dans le "monde réel", ce projet serait trop important pour la période que vous spécifiez. Si je travaillais sous vos contraintes, j'utiliserais Django. Vous pouvez lire sur le déploiement (qui sont des questions, je pense que vous avez posé des questions sur) à
+1 Il est toujours préférable de savoir ce que le diable se passe alors lorsque la magie vous échoue, vous avez une chance de combattre à résoudre le problème.
"PHP est une langue vraiment merdique" ... ne pouvait pas être plus d'accord.
Vous ne devriez pas jeter sur un chien de travail, sauf si vous avez déjà un bœuf.
Vous pouvez envisager de regarder dans la bibliothèque de bécher pour Python, qui n'est pas liée à un cadre Web et de travail dans un environnement compatible WSGI: P>
Becker est une bibliothèque de mise en cache et de sessions à utiliser avec des applications Web et des scripts et des applications python autonomes. Il est livré avec le middleware WSGI pour une utilisation facile des applications Web basées sur la WSGI et des décorateurs de mise en cache pour faciliter l'utilisation avec n'importe quelle application Python. P> blockQuote>
Ceci fonctionne avec Python 3.6 sur OSX avec Apache et Cadres zéro. Juste tout droit cgi bin.
Dans cet exemple, j'ai envoyé un cookie. Ce cookie est effectivement une session. Vous envoyez une variable aléatoire et enregistrez cela sur votre serveur à des fins de référence. Je le stocke dans la base de données. Le problème avec la manière dont PHP sessions est si vous avez une ferme Web, ils perdent la session car elles le stockent sur Apache. C'est une meilleure méthode de suivi des sessions.
Python n'est pas - lui-même - un cadre Web comme PHP. Quel cadre Web utilisez-vous?
Je n'utilise pas pour le moment aucun cadre Web Python. Cependant, j'essaie d'en trouver un. --- Merci d'avoir souligné que PHP est un cadre Web. J'ai eu une idée que ce n'est qu'un langage de programmation parmi beaucoup d'autres.