Python - это язык общего назначения, не предназначенный для веба. Существует несколько встраиваемых PHP-подобных решений, но в большинстве веб-фреймворков Python вы пишете код Python и HTML (шаблон) по отдельности.
Например, в веб-фреймворке Django вы сначала пишете представление (представление - вы знаете - из этой знаменитой модель-представление-контроллер шаблон):
def my_view(request, movie):
return render_to_template('my_view.html',
{'movie': settings.MEDIA_URL + 'flash.swf?' + movie})
И зарегистрируйте его с помощью Диспетчер URL (в Django есть специальный файл с именем urls.py
):
...
url(r'/flash/(?P<movie>.+)$', 'myapp.views.my_view'),
...
Затем my_view.html
шаблон :
...
<object classid="clsid:XXXXXXXXX-YYYY-ZZZZ-AAAA-BBBBBBBBBB" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="100%" height="100%" id="main" align="middle">
<param name="allowScriptAccess" value="all" />
<param name="flashvars" value= />
<param name="movie" value="{{ movie }}" />
<param name="loop" value="false" />
<param name="quality" value="high" />
<param name="bgcolor" value="#eeeeee" />
<embed src="{{ movie }}" loop="false" quality="high" bgcolor="#eeeeee" width="100%" height="100%" name="main" align="middle" allowScriptAccess="all" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
...
Хотя это может показаться большой работой для такой крошечной задачи, когда вам нужно написать что-то большее, чем простой скрипт, заменяющий значения, фреймворк окупается. Например, вы можете написать простое приложение для блога, содержащее менее 100 строк кода. Фреймворк автоматически позаботится о парсинге URL (как в mod_rewrite для PHP от Apache), сложных шаблонах, доступе к базе данных, генерации форм, обработке и проверке, аутентификации пользователей, отладке и т. Д.
Существует множество различных фреймворков, каждый из которых имеет свои плюсы и минусы. Я рекомендую потратить некоторое время на чтение вступлений и выбор того, который вам нравится. Лично мне нравится Django, и я добился успеха с web.py . Я также слышал хорошие новости о Pylons и TurboGears .
Если вам нужно что-то действительно простое (как в вашем примере), где вам почти ничего не нужно, вы можете просто написать небольшое приложение WSGI , которое затем можно будет использовать, например, с Apache mod_python или mod_wsgi. Это будет примерно так:
def return_movie_html(environ, start_response):
request_uri = environ.get('REQUEST_URI')
movie_uri = request_uri[request_uri.rfind('/')+1:]
start_response('200 OK', [('Content-Type', 'text/html')])
return ['''
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
...
<object ...>
<param name="allowScriptAccess" value="all" />
<param name="flashvars" value= />
<param name="movie" value="%(movie)s" />
<param name="loop" value="false" />
<param name="quality" value="high" />
<param name="bgcolor" value="#eeeeee" />
<embed src="%(movie)s" loop="false" ... />
</object>
...
</html>
''' % {'movie': movie_uri}]
Подводя итог: без дополнительных вспомогательных библиотек веб-программирование на Python является болезненным и требует выполнения всего от синтаксического анализа URI до форматирования вывода с нуля. Однако, есть много хороших библиотек и фреймворков, которые делают работу не только безболезненной, но иногда даже приятной :) Узнайте о них больше, и я думаю, вы не пожалеете об этом.