Исходный текст: http://www.devshed.com/c/a/Python/Karrigell-for-Python/
Поскольку Python не предназначен специально для веб-разработки, многие пользователи Python сейчас разрабатывают программы, которые позволяют Python работать на платформе. Karrigell — одна из многих фреймворков Python/Web. В этой статье представлено краткое введение в
Karrigell
— это мощный и гибкий фреймворк Python/web, который предоставляет множество решений для веб-разработки. Важно отметить, что его установка и использование очень просты. Даже новички в Python не запутаются при использовании Karrigell, и Karrigell не ограничивает некоторые возможности Python из-за его простой структуры. Он позволяет использовать собственный веб-сервер для завершения работы. , но также очень легко работать с другими веб-серверами (например, Apache), поэтому, если вы выберете Karrigell, вы все равно сможете использовать веб-сервер, который использовали раньше.
Эта статья начнется с Karrigell. Начнем с установки и. представить несколько важных особенностей Karrigell.
Установка Karrigell
Как упоминалось выше, установка Karrigell не представляет никаких проблем. Первый шаг, который вам нужно сделать, это загрузить последнюю версию Karrigell с SourceForge. После загрузки zip-архива распакуйте его. каталог, который легко найти. Затем дважды щелкните Karrigell.py, чтобы запустить встроенный веб-сервер Karrigell. Если вы не хотите использовать Karrigell с другими веб-серверами сейчас, установка Karrigell заканчивается на этом
. настройте свой веб-сервер для интеграции с Karrigell, в качестве примера возьмем Apache. Теперь нам нужно, чтобы Karrigell работал в фоновом режиме Apache, чтобы Apache отправлял соответствующие запросы Karrigell.
Поскольку Apache обычно работает на порту 80, вам необходимо установить другой рабочий порт для Karrigell. Есть два способа добиться этой цели: использовать для этого командную строку или изменить файл конфигурации Karrigell. посмотрите, как Используя командную строку, мы запустим Karrigell на порту 8080.
C:Karrigell>Karrigell.py -P 8080
Во-вторых, вам нужно найти Karrigell.ini, а затем добавить предложение
port=8080.
Теперь вам нужно настроить Apache. для передачи соответствующего запроса перенаправляется в Karrigell. Вообще говоря, вы хотите, чтобы Apache обрабатывал любой запрос статического файла, например php. Вы можете использовать один и тот же путь с apache или указать отдельный путь. требуется, чтобы Apache передавал запрос Карригеллу, вам нужно добавить следующее в файл httpd.conf Apache.
RewriteEngine On.
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]
Если хотите, вы можете настроить пересылку всех запросов на определенный файл в Карригелл. В этой статье. , мы будем использовать путь к тестовой области, поэтому мы устанавливаем httpd.conf следующим образом:
RewriteEngine On
RewriteRule ^/testarea(.*) http://localhost:8080/testarea$1 [P]
Конечно, вы можете сделать это:
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]
Скрипты и службы
Сценарии Python и службы Karrigell будут двумя концепциями, наиболее доступными для разработчиков Python, использующих Karrigell. Скрипты Python — это сценарии Python, и разработчики используют оператор печати. выводит содержимое в браузер пользователя. Если вы еще не понимаете, создайте каталог testarea, а затем мы начнем создавать наши первые скрипты Python. Создайте новый файл test.py:
напечатайте «<center>».
напечатать «Привет!»
напечатайте "<br /><br />"
print «Карригелл настроен и работает».
print "</center>"
Откройте этот файл в браузере. Если ваш Karrigell был настроен правильно, вы увидите результат.
Скрипты Python также могут легко использовать формы. Давайте создадим простую страницу, на которой пользователи смогут вводить свои имена. Создайте новый файл Askname.py:
if QUERY.has_key("name"):
напечатайте "Ваше имя", _name + "."
еще:
print "Как тебя зовут?<br />"
напечатать "<форма>"
напечатайте "<input type='text' name='name' /><br />"
напечатайте "<input type='submit' value='Proceed' />"
print "</form>"
Службы Karrigell написаны аналогично сценариям Python. Целью этого является сопоставление запросов с указанными пользователем методами. Имя указанного метода передается после служб Karrigell. Например, следующий URL-адрес будет. вызов теста. Этот метод
http://localhost/testarea/test.ks/test
позволяет нам написать этот пример
def index():
напечатайте «Индексную функцию».
Защитный тест():
напечатайте «Тестовая функция».
Если вы используете эти сценарии Python без передачи имени метода, ваша программа по умолчанию выполнит индексный метод. Если проверка имени метода пройдена, будет вызван метод теста, который не существует. выкинет ненормально.
Сервисы Karrigell также легко использовать для обработки данных, передаваемых в формах. Давайте создадим
индекс def index() ascname.ks:
print "Как тебя зовут?<br />"
напечатайте "<form action='nameSubmit'>"
напечатайте "<input type='text' name='name' /><br />"
напечатайте "<input type='submit' value='Proceed' />"
напечатайте "</form>"
def nameSubmit (имя):
напечатайте "Ваше имя", name + "."
Конечно, предоставление внешнего публичного доступа к вашим методам - очень опасная вещь. Чтобы предотвратить доступ неавторизованных пользователей к вашим методам, используйте префикс к вашим методам, как описано ниже:
def _private():
Попытки
доступа к методу _private вызовут исключение.
При использовании HIP
в Askname.py стоит отметить одну вещь. Если его можно вывести напрямую, без использования print, это будет здорово. К счастью, Karrigell предоставляет такую функциональность. Это называется HTML Inside Python, и это очистит все эти неприятные операторы печати. И преобразование из Askname.py в TML Inside Python также очень просто. удалено. Удалите отпечаток в файле Askname.py и переименуйте файл в AskName.hip
f QUERY.has_key ("name"):
"Ваше имя", _name + "."
еще:
«Как тебя зовут?<br />»
"<метод формы='POST'>"
"<input type='text' name='name' /><br />"
"<input type='submit' value='Proceed' />"
«</form>»
Это HTML Inside Python. Карригелл проверит ваш файл и автоматически добавит печать, где это необходимо. HTML Inside Python является свидетельством того, насколько легко учиться Karrigell
Python
Inside HTML
.
Inside Python, естественно, также предоставит Python Inside HTML. Как обычно, напишите операторы Python в специальных тегах, а затем отправьте окончательные результаты в браузер пользователя. Давайте создадим простой пример, random.pih
<% import random %>.
Случайное число: <b><% print random.random() %></b>
Как видите, концепция Python Inside HTML очень проста. На самом деле блок кода может быть еще проще:
<%= случайный. .random() %>
Но что,если
вы имеете дело с более сложной логикой, например с обработкой данных формы?
if QUERY.has_key("имя"): %>
Ваше имя <%= _name %>.
<% конец %>
<% еще: %>
Как тебя зовут?<br />
<метод формы ='POST'>
<input type='text' name='name' /><br />
<input type='submit' value='Proceed' />
</форма>
<% end %>
Обратите внимание на использование <% end %>. Он отмечает конец блока кода, как и отступ в нашем условном операторе выше. Другой альтернативой является использование тега отступа, который также используется To. определить отступ кода
<indent>
.
<% if QUERY.has_key ("имя"): %>
Ваше имя <%= _name %>.
<% еще: %>
Как тебя зовут?<br />
<метод формы ='POST'>
<input type='text' name='name' /><br />
<input type='submit' value='Proceed' />
</форма>
</indent>
Давайте попробуем
больше подобных функций
. Теги можно использовать с помощью скриптов Python, tagtest.py.
rom HTMLTags import *
print CENTER (B («Test.»))
сеанс также может быть обработан в Karrigell, и Karrigell также предоставляет хороший механизм сеанса, близкий к объектно-ориентированному. Давайте создадим простой код для демонстрации в сеансе Karrigell. Возвращаясь к нашему первому примеру, пользователю будет присвоен счастливый номер. Если пользователь обновит страницу, номер все равно останется там, потому что он будет сохранен в сеансе. Конечно, у пользователя будет возможность повторно. получить новый счастливый номер, это можно сделать, закрыв сессин. Создайте сервис Karrigell с именем Luckynumber.ks и введите следующий код:
импортировать случайного
пользователя = Session()
def index():
если не «luckyNumber» в каталоге (пользователь):
user.luckyNumber = случайный.randint (0, 20)
напечатайте «Ваш счастливый номер:», user.luckyNumber
напечатайте "<br /><br />"
напечатайте "<a href='reset'>Сбросить счастливый номер</a>"
сброс сброса():
пользователь.закрыть()
напечатать «Ваш счастливый номер был сброшен».
напечатайте "<br /><br />"
print "<a href='index'>Back</a>"
Заключение
Karrigell предоставляет четыре метода для открытия веб-страниц: скрипты Python, службы Karrigell, HTML Inside Python и Python Inside HTML. Но все они имеют свои особенности. одно общее преимущество: простота использования. Karrigell превращает веб-разработку в элегантную и простую вещь. Независимо от того, используете ли вы Karrigell отдельно или в сочетании с Apache, это удивительно просто, потому что независимо от того, для новичков или для ветеранов, Karrigell — хороший выбор. .