Question

Je suis un développeur ex-PHP et je me bats pour obtenir sur l'état d'esprit que je peux écrire un script de configuration nginx, créez les répertoires, lancez nginx + PHP-FPM, télécharger mon code et laisser courir. Je veux commencer à jouer avec Python pour obtenir une sensation pour elle et commencer à créer des applications web, mais je suis un peu perdu quant à la façon d'obtenir tout travail.

Bien que certains conseils des gens va toujours être d'utiliser un framework comme Django, je veux voir comment tout cela fonctionne du bas vers le haut.

Je suis venu à travers une comparaison des serveurs Web Python, et il semble que gevent est ce que je cherche. Mais comment cela toutes ensemble? Ai-je besoin nginx (sauf pour le contenu statique) en tant que proxy inverse, ou dois-je faire quelque chose de différent? Je suis face à la « cécité débutant » et je me bats pour voir comment tout cela se comporte.

Était-ce utile?

La solution

Je suis moi-même développeur Python débutant, donc j'ai eu les mêmes questions. Peut-être un utilisateur plus avancé peut remplir les détails. Voici ce que je l'ai fait jusqu'à présent:

La façon la plus simple de commencer est de faire simplement un script python exécutable (py) et déposez-le dans votre cgi-bin. Vous pouvez y accéder via yourhost.com/cgi-bin/your_script.py. Simple, facile à utiliser pour le traitement et la substance forme.

Certains serveurs vous demandera de redémarrer le serveur avant qu'il ne puisse « voir » le nouveau script py, qui pourrait être assez gênant pour le développement rapide. C'est une raison pour laquelle beaucoup de gens utilisent le middleware tels que WSGI. Voici comment je modifié mon config Apache pour permettre WSGI:

LoadModule wsgi_module libexec/apache2/mod_wsgi.so

<VirtualHost *:80>

WSGIScriptAlias /myapp /Library/WebServer/wsgi-scripts/views.wsgi

<Directory /Library/WebServer/wsgi-scripts>
Order allow,deny
Allow from all
</Directory>

</VirtualHost>

views.wsgi est tout simplement un script Python. Maintenant, si je vais à localhost / myapp / tout ce qu'il va rediriger vers views.wsgi. Il est une bonne idée de ne pas mettre ce fichier dans votre répertoire racine, sinon vous ne serez pas en mesure de fichiers statiques de référence.

Une application simple peut simplement ressembler à ceci:

def application(environ, start_response):
    start_response('200 OK', [('content-type', 'text/html')])
    return ['Hello world!']

environ contient des informations sur le chemin que l'utilisateur essaie d'atteindre, si l'idée est que vous pouvez mettre en place une liste des URLS, et dites à votre programme fonction à appeler basée sur l'URL a été demandée. Quelque chose comme ceci:

 path      = environ.get('PATH_INFO','')
 if path.startswith('/helloworld'):
  # call your function that returns HTML code

Je n'ai pas traité beaucoup de cadres (tels que Django) encore, mais je pense que l'un des avantages, il est qu'ils rendent facile à remplir HTML des modèles utilisant toutes les variables sont passées de votre script. Le moteur de template de Django permet d'inclure des variables ainsi que la logique (si, pour, etc.) entremêlée de votre code HTML. Lorsque la fonction est appelée, quel qu'il retourne est envoyé au client.

Je suis encore assez nouveau pour tout cela, merci de me corriger s'il y a des erreurs ici ...

Autres conseils

Il est peu différent avec Python avec PHP. Une bonne chose au sujet de Python, qui est défini une interface commune dans une norme qui permet d'utiliser un diverses applications Python d'un côté et les différents serveurs Web sur l'autre. Il est appelé WSGI, et vous pouvez en lire davantage

est un bon message sur le déploiement de Django application via ngnix.

Vous avez besoin d'un logiciel qui exécutera votre code pyton ..

Vous pouvez essayer une pile python 100% avec tornade

Vous pouvez aussi utiliser Apache, Nginx ou Lighttpd (je pense que tous écrit en C), puis utiliser certains mod (mod_wsgi, FGCI ou uwsgi) afin de rendre cette webservers exécuter votre code en utilisant wsgi interface. Cette seconde option est comme ce que apache + some_mod faire pour exécuter votre code PHP ..

J'ai des sites de production en cours d'exécution sur Apache + mod_wsgi et Nginx + uwsgi

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top