Звучит заманчиво: Django на IronPython
Опубликовано: 29 марта, 2009 Filed under: asp.net, DLR, iis, iis6, iis7, Python | Tags: .net, asp.net, Django, IronPython, NWSGI, Python, WSGI 5 комментариевdef Introduce():
Дорогие мальчики и девочки, меня (как позже оказалось не только меня) интересует веб-индустрия и всё, что с ней связано, соответственно хочется вкусить разнообразных технологий, одной из них является известный фреймворк Django. Им и хочется заняться. Думаю, не стоит говорить, о том, что я .NET-разработчик, в связи с чем Python в чистом виде использовать не очень хочется, но хочется попробовать IronPython в деле. Тогда вполне очевидно, что Django на .NET должен являться ASP.NET приложением.
def WSGI():
Здесь нам нужно знать, что такое WSGI:
WSGI (англ. Web Server Gateway Interface, произносится виски) — стандарт взаимодействия между Python-программой, выполняющейся на стороне сервера, обычно из каталога cgi-bin, и самим веб-сервером, например, Apache.
Дополнительная информация: PEP 333
И нам безусловно повезло, т.к. есть готовая имплементация WSGI для ASP.NET: NWSGI – выполнена как ASP.NET 2.0 HttpHandler на IronPython.
Что примечательно, мало того, что NWSGI интегрируется с IIS и позволяет работать с сессиями, кешем и управлением пользователями, он интегрируется даже с графической средой управления IIS 7!
Это ещё не всё, NWGSI умеет также работать с Cassini (веб-сервер Visual Studio).
Думаю Вам, ровно как и мне, не терпится поработать с этим.
def PrepareIIS():
Итак, что нам необходимо:
- IronPython 2.0
- NWSGI 1.0
- Огромное желание сделать что-нибудь особенное на этом.
Для установки из пакета NWSGI копируем пример HelloWorld в папку C:\inetpub\wwwroot\HelloWorld (либо другой путь для ваших IIS приложений). Из этого же пакета копируем NWSGI.dll в папочку HelloWorld\bin (если пользовались инсталлятором, то в этом нет необходимости, т.к. она уже в GAC’е).
Далее из пакета IronPython 2.0 копируем в каталог HelloWorld\bin следующие сборки:
- IronPython.dll
- IronPython.Modules.dll
- Microsoft.Scripting.Core.dll
- Microsoft.Scripting.dll
Наша папочка HelloWorld должна выглядеть следующим образом:
HelloWorld\
- bin\
- NWSGI.dll (optional)
- IronPython.dll
- IronPYthon.Modules.dll
- Microsoft.Scripting.Core.dll
- Microsoft.Scripting.dll
- hello.wsgi
- Web.Classic.config
- Web.Integrated.config
Далее, если у нас ISS 7.0, то тогда копируем Web.Integrated.config в Web.config, иначе Web.Classic.config в Web.config.
Далее добавляем приложение на IIS, это можно сделать, как через графическое меню, так и воспользоваться консолью:
%systemroot%\system32\inetsrv\appcmd add app /site.name:"Default Web Site" /path:/hello /physicalPath:C:\inetpub\wwwroot\HelloWorld
Если же у вас IIS 6, то путь один – через графическое меню, а так же необходимо будет ассоциировать *.wsgi с ASP.NET ISAPI фильтром (по аналогии с *.aspx)
Теперь идём по адресу http://localhost/hello/hello.wsgi. И видим грациозное: "Hello, World!", yeah!
def InstallDjango():
Установить Django можно с помощью команды:
ipy setup.py install
Далее можно добавить проект и сгенерировать приложения:
ipy manage.py startapp AppName
ipy manage.py startproject ProjName
К сожалению, мне не хватило навыков для того, чтобы запустить django-приложение под NWSGI.
def SqlServer():
Подключить Django к Microsft SQL Server 2005 и выше можно с помощью следующей библиотеки:
http://code.google.com/p/django-mssql/
Так же можно почитать о подключении здесь: http://blogs.msdn.com/dinoviehland/archive/2008/03/17/ironpython-ms-sql-and-pep-249.aspx
def GetGratitude():
Огромную благодарность за выполненную работу хочу выразить Jeff Hardy и советую ознакомиться с его работами:
Перезапуск пула в IIS7
Опубликовано: 28 июля, 2008 Filed under: iis | Tags: application pool, iis6, iis7 Оставьте комментарийВ Windows 2008 Server, а так же Windows Vista используется IIS 7ой серии. Для перезапуска пула приложения в нём используется следующая команда:
- «%systemroot%\system32\inetsrv\APPCMD» recycle apppools «SharePoint — 80»
аналог в Windows 2003 Server на IIS 6:
- cscript c:\windows\system32\iisapp.vbs /a «SharePoint — 80» /r .