Я сам начинающий разработчик Python, поэтому у меня возникли те же вопросы. Возможно, более продвинутый пользователь может заполнить детали. Вот что я сделал до сих пор:
Самый простой способ начать работу - просто создать исполняемый скрипт Python (.py) и поместить его в ваш cgi-bin. Вы можете получить к нему доступ через yourhost.com/cgi-bin/your_script.py. Простой в использовании, простой в использовании для обработки форм и прочего.
Некоторые серверы требуют, чтобы вы перезапустили сервер, прежде чем он сможет «увидеть» новый сценарий .py, что может сильно раздражать для быстрой разработки. Это одна из причин, почему многие люди используют промежуточное программное обеспечение, такое как WSGI. Вот как я изменил свою конфигурацию Apache для включения 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 - это просто скрипт Python. Теперь, если я зайду в localhost / myapp / что-нибудь, он будет перенаправлен на views.wsgi. Рекомендуется не помещать этот файл в корневой каталог, иначе вы не сможете ссылаться на статические файлы.
Простое приложение может выглядеть просто так:
def application(environ, start_response):
start_response('200 OK', [('content-type', 'text/html')])
return ['Hello world!']
Среда содержит информацию о пути, по которому пытается добраться пользователь, поэтому идея заключается в том, что вы можете настроить список URL-адресов и сообщить своей программе, какую функцию вызывать, основываясь на том, какой URL-адрес был запрошен. Примерно так:
path = environ.get('PATH_INFO','')
if path.startswith('/helloworld'):
# call your function that returns HTML code
Я пока мало занимался фреймворками (такими как Django), но я думаю, что одно из преимуществ заключается в том, что они позволяют легко заполнять шаблоны HTML, используя любые переменные, передаваемые из вашего скрипта. Шаблонный движок Django позволяет включать переменные, а также логику (если, для и т. Д.), Смешанную с вашим HTML Когда функция вызывается, все, что она возвращает, отправляется клиенту.
Я все еще новичок во всем этом, поэтому, пожалуйста, исправьте меня, если здесь есть какие-либо ошибки ...