Texte original : http://www.devshed.com/c/a/Python/Karrigell-for-Python/
Étant donné que Python n'est pas spécifiquement conçu pour le développement Web, de nombreux utilisateurs de Python développent désormais des programmes permettant à Python de s'exécuter sur le framework. du Web. Karrigell est actuellement l'un des nombreux frameworks python/web. Cet article donnera une brève introduction à Karrigell.
Karrigell
est un framework python/web puissant et flexible qui fournit une variété de solutions pour le développement Web. plus important encore, son installation et son utilisation sont très simples. Même les débutants en Python ne seront pas confus lorsqu'ils utiliseront Karrigell, et Karrigell ne limite pas certaines fonctionnalités de Python en raison de sa structure simple. Il permet d'utiliser votre propre serveur Web pour terminer le travail. , mais il est également très simple de travailler avec d'autres serveurs Web (comme Apache), donc si vous choisissez Karrigell, vous pouvez toujours utiliser le serveur Web que vous utilisiez auparavant.
Cet article commencera par Karrigell. Commençons par l'installation et
.présentez plusieurs fonctionnalités importantes de Karrigell.
Installation de Karrigell
Comme mentionné ci-dessus, l'installation de Karrigell n'est pas du tout gênante. La première étape que vous devez faire est de télécharger la dernière version de Karrigell depuis SourceForge. Après avoir téléchargé le package zip, extrayez-le dans un fichier. répertoire facile à trouver. Ensuite, double-cliquez sur Karrigell.py pour démarrer le serveur Web intégré de Karrigell. Si vous ne souhaitez pas utiliser Karrigell avec d'autres serveurs Web maintenant, l'installation de Karrigell se termine ici
. configurez votre serveur Web pour qu'il s'intègre à Karrigell, prenons Apache comme exemple. Nous avons maintenant besoin que Karrigell s'exécute en arrière-plan d'Apache, afin qu'Apache envoie les requêtes pertinentes à Karrigell.
Étant donné qu'Apache s'exécute généralement sur le port 80, vous devez définir un autre port en cours d'exécution pour Karrigell. Il existe deux façons d'atteindre cet objectif. La première consiste à utiliser la ligne de commande pour le terminer, ou vous pouvez d'abord modifier le fichier de configuration de Karrigell. voyez comment En utilisant la ligne de commande, nous allons exécuter Karrigell sur le port 8080.
C:Karrigell>Karrigell.py -P 8080
Deuxièmement, vous devez trouver Karrigell.ini, puis ajouter la phrase
port=8080
Vous devez maintenant configurer Apache pour transférer les fichiers pertinents. La demande est redirigée vers Karrigell. De manière générale, vous souhaitez qu'Apache gère toute demande de fichier statique, telle que php. Vous pouvez partager le même chemin avec Apache, ou vous pouvez définir un chemin séparé. Si vous exigez qu'Apache transmette la requête à Karrigell, vous devez ajouter ce qui suit au fichier httpd.conf d'Apache
.
RewriteRule ^/(.*).py(.*) http://localhost:8080/$1.py$2 [L,P]
RewriteRule ^/(.*).ks(.*) http://localhost:8080/$1.ks$2 [L,P]
RewriteRule ^/(.*).hip(.*) http://localhost:8080/$1.hip$2 [L,P]
RewriteRule ^/(.*).pih(.*) http://localhost:8080/$1.pih$2 [P]
Si vous le souhaitez, vous pouvez définir toutes les demandes pour qu'un fichier spécifique soit transmis à Karrigell dans cet article. , nous utiliserons le chemin testarea, nous définissons donc httpd.conf comme ceci :
RewriteEngine On
RewriteRule ^/testarea(.*) http://localhost:8080/testarea$1 [P]
Bien sûr, vous pouvez faire ceci :
RewriteEngine On
RewriteRule ^/testarea/(.*).py(.*)
http://localhost:8080/testarea/$1.py$2 [L,P]
RewriteRule ^/testarea/(.*).ks(.*)
http://localhost:8080/testarea/$1.ks$2 [L,P]
RewriteRule ^/testarea/(.*).hip(.*)
http://localhost:8080/testarea/$1.hip$2 [L,P]
RewriteRule ^/testarea/(.*).pih(.*)
http://localhost:8080/testarea/$1.pih$2 [P]
Scripts et services
Les scripts Python et les services Karrigell seront les deux concepts les plus accessibles aux développeurs Python utilisant Karrigell. Les scripts Python sont des scripts Python et les développeurs utilisent l'instruction print. affiche le contenu sur le navigateur de l'utilisateur. Si vous ne comprenez pas encore, créez un répertoire testarea, puis nous commencerons à créer nos premiers scripts Python. Créez un nouveau fichier test.py :
imprimez "<center>".
imprimer "Bonjour!"
imprimer "<br /><br />"
print "Karrigell est configuré et fonctionne."
print "</center>"
Ouvrez ce fichier dans le navigateur Si votre Karrigell a été correctement configuré auparavant, vous verrez la sortie.
Les scripts Python peuvent également facilement utiliser des formulaires. Créons une page simple où les utilisateurs peuvent saisir leurs noms. Créez un nouveau fichier Askname.py :
if QUERY.has_key ( "name") :
print "Votre nom est", _name + "."
autre:
imprimer "Quel est ton nom ?<br />"
imprimer "<formulaire>"
print "<input type='text' name='name' /><br />"
print "<input type='submit' value='Proceed' />"
print "</form>"
Les services Karrigell sont écrits de la même manière que les scripts Python. Le but est de mapper les requêtes aux méthodes spécifiées par l'utilisateur. Le nom de la méthode spécifiée est transmis après les services Karrigell. call test Cette méthode
http://localhost/testarea/test.ks/test
nous permet d'écrire cet exemple
def index() :
imprimer "Fonction d'indexation".
test def() :
print "Fonction de test."
Si vous utilisez ces scripts Python sans transmettre le nom de la méthode, votre programme exécutera la méthode d'index par défaut. Si le test du nom de la méthode est réussi, la méthode de test sera appelée. va jeter anormale.
Il est également facile d'utiliser les services Karrigell pour gérer les données transmises dans les formulaires. Créons un ascname.ks
def index() :
imprimer "Quel est ton nom ?<br />"
imprimer "<form action='nameSubmit'>"
print "<input type='text' name='name' /><br />"
print "<input type='submit' value='Proceed' />"
imprimer "</form>"
def nomSoumettre ( nom ):
print "Votre nom est", nom + "."
Bien sûr, autoriser l'accès public externe à vos méthodes est une chose très dangereuse pour empêcher les utilisateurs non autorisés d'accéder à vos méthodes, préfixez vos méthodes comme décrit ci-dessous :
def _private() :
réussies
pour accéder à la méthode _private lèveront une exception.
En utilisant HIP
dans Askname.py, il y a une chose à noter. Ce code a une instruction print S'il peut être généré directement sans utiliser print, ce sera génial. Heureusement, Karrigell fournit une telle fonctionnalité. C'est ce qu'on appelle HTML Inside Python et cela nettoiera toutes ces mauvaises instructions d'impression. Et la conversion de Askname.py en TML Inside Python est également très simple. supprimé. Supprimez l'impression dans Askname.py et renommez le fichier en Askname.hip
f QUERY.has_key ( "name") :
"Votre nom est", _name + "."
autre:
"Comment t'appelles-tu ?<br />"
"<form méthode='POST'>"
"<input type='text' name='name' /><br />"
"<input type='submit' value='Proceed' />"
"</form>"
Ceci est HTML Inside Python. Karrigell inspectera votre fichier et ajoutera automatiquement une impression si nécessaire. HTML Inside Python témoigne de la facilité avec laquelle
KarrigellPython Inside HTML
fournit du HTML
.
Naturellement, Inside Python fournira également Python Inside HTML. Comme d'habitude, écrivez les instructions Python dans des balises spéciales, puis envoyez les résultats finaux au navigateur de l'utilisateur. Créons un exemple simple, random.pih
<% import random %>.
Nombre aléatoire : <b><% print random.random() %></b>
Comme vous pouvez le constater, le concept de Python à l'intérieur du HTML est si simple. En fait, le bloc de code peut être encore plus simple :
<%= random. .random() %>
Mais que se passe-t-il si vous avez affaire à une logique plus complexe, telle que le traitement des données de formulaire ? Les données de formulaire peuvent être traitées de la même manièrequ'elles
sont traitées dans les scripts Python.
si QUERY.has_key ( "nom" ): %>
Votre nom est <%= _name %>.
<% fin %>
<% autre : %>
Quel est ton nom ?<br />
<form méthode='POST'>
<input type='text' name='name' /><br />
<input type='submit' value='Proceed' />
</form>
<% end %>
Notez l'utilisation de <% end %> Cela marquera la fin du bloc de code, tout comme l'indentation de notre instruction conditionnelle ci-dessus. Une autre alternative consiste à utiliser la balise indent, qui est également utilisée pour.
identifier
l'indentation du code.
<% si QUERY.has_key ( "nom" ): %>
Votre nom est <%= _name %>.
<% autre : %>
Quel est ton nom ?<br />
<form méthode='POST'>
<input type='text' name='name' /><br />
<input type='submit' value='Proceed' />
</form>
</indent>
Essayons
plus de fonctionnalités
comme celle-ci. Les balises peuvent être utilisées via des scripts Python, tagtest.py.
rom HTMLTags import *
print CENTER ( B ( "Test." ) )
peut également être traité dans Karrigell, et Karrigell fournit également un bon mécanisme de session proche de l'orientation objet. Créons un code simple à démontrer dans la session Karrigell. revenons à notre premier exemple, l'utilisateur recevra un numéro porte-bonheur. Si l'utilisateur actualise la page, le numéro sera toujours là car le numéro sera enregistré dans la session. Bien sûr, l'utilisateur aura la possibilité de le re-. récupérez-en un nouveau Numéro chanceux, cela se fait en fermant sessin. Créez un service Karrigell appelé Luckynumber.ks et entrez le code suivant :
importer
un utilisateur aléatoire = Session()
def index() :
sinon "luckyNumber" dans le répertoire (user):
utilisateur.luckyNumber = random.randint (0, 20)
print "Votre numéro porte-bonheur :", user.luckyNumber
imprimer "<br /><br />"
print "<a href='reset'>Réinitialiser le numéro porte-bonheur</a>"
def réinitialiser() :
utilisateur.close()
imprimer "Votre numéro porte-bonheur a été réinitialisé."
imprimer "<br /><br />"
print "<a href='index'>Retour</a>"
Conclusion
Karrigell propose quatre méthodes pour l'ouverture du Web, les scripts Python, les services Karrigell, HTML Inside Python et Python Inside HTML. Chaque méthode a ses propres caractéristiques. Mais elles ont toutes leurs propres caractéristiques. un avantage commun : la simplicité d'utilisation. Karrigell transforme le développement Web en une chose élégante et simple. Que vous utilisiez Karrigell seul ou en combinaison avec Apache, c'est étonnamment simple. Que ce soit pour les débutants ou les vétérans, Karrigell est un bon choix. .