Звучит заманчиво: Django на IronPython

def Introduce():

Дорогие мальчики и девочки, меня (как позже оказалось не только меня) интересует веб-индустрия и всё, что с ней связано, соответственно хочется вкусить разнообразных технологий, одной из них является известный фреймворк DjangoimageИм и хочется заняться. Думаю, не стоит говорить, о том, что я .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

В 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 .