Kurs języka Python. Wykład 14. Marcin Młotkowski. 25 stycznia 2010. Python i Apache Pythonowe platformy aplikacyjne. Dystrybucja aplikacji w U*IX



Podobne dokumenty
Wybrane działy Informatyki Stosowanej

Programowanie i projektowanie obiektowe

Zrąb webowy dla perfekcjonistów z terminami. autor: Kamil Adamczyk

Przykład programu w PHP. Wykład10.PHP ciągdalszy,str.1

Przegląd języka Python. Łukasz Anwajler

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Zaawansowany kurs języka Python

Niezbędne serwery aplikacji. Wprowadzenie do technologii JBoss i Apache Tomcat.

Testy aplikacji webowych

Zaawansowany kurs języka Python

Quiz Aplikacja internetowa

Komunikacja Człowiek-Komputer

Wybrane działy Informatyki Stosowanej

OpenLaszlo. OpenLaszlo

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Wprowadzenie Architektura Więcej szczegółów Podsumowanie. Google App Engine. Alicja Łuszczak. 8 stycznia 2010

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008

Programowanie w internecie nazwa przedmiotu SYLABUS A. Informacje ogólne

Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07

Enterprise JavaBeans (EJB)

INSTRUKCJA INSTALACJI DATAMOBILE. Ver. 1.3

Kurs rozszerzony języka Python

Serwery aplikacji. mgr Radosław Matusik. Wydział Matematyki i Informatyki Uniwersytetu Łódzkiego radmat radmat@math.uni.lodz.

Wybrane działy Informatyki Stosowanej

Zakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

Tomasz Grześ. Systemy zarządzania treścią

Należy ściągnąć oprogramowanie Apache na platformę

Aplikacje WWW i PHP - opis przedmiotu

Szczegółowy opis zamówienia:

Zaawansowany kurs języka Python

I.Wojnicki, Tech.Inter.

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Plan. Stan sesji (1/2) Stan sesji (2/2) Stan sesji Tworzenie przycisku Integracja prostego formularza z raportem Tworzenie formularza z raportem

1 Wprowadzenie do J2EE

Enterprise JavaBeans

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

JĘZYK PYTHON - NARZĘDZIE DLA KAŻDEGO NAUKOWCA. Marcin Lewandowski [ mlew@ippt.gov.pl ]

Oracle Application Express -

5-6. Struktura dokumentu html. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

Wywoływanie metod zdalnych

Zaawansowany kurs języka Python

Wywoływanie metod zdalnych

Protokół HTTP. 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

Hackowanie zamrożonych binariów

Programowanie internetowe

Aplikacje WWW - laboratorium

Przetwarzanie danych w chmurze

Enterprise JavaBeans. 1. Architektura EJB: komponenty encyjne, komponenty sesyjne, komponenty sterowane komunikatami. 2. Kontenery EJB JBoss.

Remote Method Invocation 17 listopada 2010

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

XML extensible Markup Language. część 5

Serwery. Autorzy: Karol Czosnowski Mateusz Kaźmierczak

Aplikacja internetowa vs Strona Internetowa. Aplikacja internetowa, (ang.) web application zwana również aplikacją webową, to program komputerowy,

Podejście obiektowe do budowy systemów rozproszonych

Aplikacje internetowe - laboratorium

Języki i narzędzia programowania III. Łukasz Kamiński Wykład II

Języki programowania wysokiego poziomu. PHP cz.1.

Aplikacje webowe z wykorzystaniem Node.js oraz Express

I. Informacje ogólne. Jednym z takich systemów jest Mambo.

Programowanie obiektowe

Aplikacje WWW. Krzysztof Ciebiera. 3 kwietnia 2014

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

Gerard Frankowski, Zespół Bezpieczeństwa PCSS. Nowoczesne technologie bliżej nas Poznań,

Programowanie w Ruby

Programowanie w Ruby

Aplikacje WWW - laboratorium

Analiza, projekt i realizacja systemu wspomagania zarządzaniem hotelu. Michał Koczko 4321

Język PHP. Studium Podyplomowe Sieci Komputerowe i Aplikacje Internetowe. v1.7, 2007/11/23

Tworzenie aplikacji bazodanowych

Systemy operacyjne na platformach mobilnych 2 Podstawy obsługi powłoki Bash

MICROSOFT WINDOWS INSTALLER TWORZENIE INSTALATORÓW W ŚRODOWISKU VISUAL STUDIO.NET

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

Czym jest jpalio? jpalio jpalio jpalio jpalio jpalio jpalio jpalio jpalio

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Zasady współpracy programu Doradca Handlowy z Symfonią

Budowanie interfejsów do baz danych

Wybrane podatności w aplikacjach webowych

Sklep Internetowy (HTML/xHTML, CSS, JavaScript, PHP, MySQL)

DOKUMENTY CYFROWE. Waldemar Korłub. Aplikacje i Usługi Internetowe KASK ETI Politechnika Gdańska

Apache. Apache serwer WWW

Kurs rozszerzony języka Python

Apache serwer WWW. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Kurs rozszerzony języka Python

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Bezpieczne udostępnianie usług www. BłaŜej Miga Zespół Bezpieczeństwa PCSS

Przykłady tworzenia aplikacji komponentowych w technologii JavaServer Faces 2.1 na podstawie

Programowanie współbieżne i rozproszone

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

Technologie Obiektowe PK WFMI 2010/2011

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Programowanie wizualne

Programowanie w Ruby

PHP revisited - odświerzenie spojrzenia na programowanie w PHP

1 Przygotował: mgr inż. Maciej Lasota

Niebezpieczna Kryptografia - zadania kwalifikacyjne

Remote Method Invocation 17 listopada rozproszonych. Dariusz Wawrzyniak (IIPP) 1

Spring Web MVC, Spring DI

INFRA. System Connector. Opis wdrożenia systemu

Transkrypt:

Wykład 14. 25 stycznia 2010 1 2 Dystrybucja aplikacji w U*IX

Python w aplikacjach serwerowych CGI; FastCGI, SCGI: ulepszone CGI; WSGI: Web Server Gateway Interface mod_python

Moduł mod_python Moduł do serwera Apache Wykonywanie samodzielnych programów (publisher handler); interpretacja programów osadzonych w stronach html (PSP handler); szybki (szybszy niż CGI).

Inne własności mod_python Co oferuje mod_python Dostęp do żądań http wywołujących funkcje Obsługa formularzy Upload plików Ciasteczka Wsparcie dla sesji

Przykład działania publishera ~/public_html/index.py def index(): return "<html><body>a kuku</body></html" def foo(): return "<html><body>foo</body></html" Wywołanie funkcji index http://.../ http://.../index http://.../index.py Wywołanie funkcji foo http://.../index/foo http://.../index.py/foo http://.../foo

Widzialność i niewidzialność Widzialna zmienna, plik.main.py widoczne = """<html><body>zmienna s</body></html>""" _niewidoczne = "<div>niewidoczne</div>" Odwołania http://.../main.py/widoczne http://.../main/widoczne http://.../main/_niewidoczne

Osadzanie Pythona w HTML u: Python Server Pages Wstawienie wyrażenia, plik index.psp <html><body> <h2><%= A kuku! %></h2> </html></body> Wstawienie instrukcji <% import time weekday = time.strftime( %A, time.localtime(time.time())) message = Witaj! Mamy piękny dzień %s. % weekday %> <html><body> <h2><%= message %></h2> </html></body>

Dodatkowe informacje Każde wywołanie uruchamia odrębny subinterpreter Pythona z własną tablicą zmiennych; dostęp do wewnętrznej struktury Apache mod_python współpracuje z Django

Spis Platformy do tworzenia serwisów webowych Django Cherry TurboGears web2py Pylons Google App Engine

Spis Platformy do tworzenia serwisów webowych Django Cherry TurboGears web2py Pylons Google App Engine

Z Object Publishing Environment Zope serwer aplikacyjny silny nacisk na obiektowość, referencje odpowiadają obiektom, nie plikom własna obiektowa baza danych Zope Object Database framework do CMS a Plone

Typowa aplikacja Dystrybucja aplikacji w U*IX main.py lib/*.pyc moduly/*.pyo img/*

Jak to zrobić Dystrybucja aplikacji w U*IX Python umożliwia uruchamianie modułów z archiwów *.zip Potrzebujemy kombinacji skryptu i archiwum *.zip

Krok pierwszy Dystrybucja aplikacji w U*IX Kompilacja pliku main.py $ python -O *.py Uruchamia plik, kompilacja jest przy okazji. Kompilacja $ python -O -c "import main"

Krok pierwszy Dystrybucja aplikacji w U*IX Kompilacja pliku main.py $ python -O *.py Uruchamia plik, kompilacja jest przy okazji. Kompilacja $ python -O -c "import main"

Krok drugi Dystrybucja aplikacji w U*IX Utworzenie archiwum $ zip aplikacja *.pyo lib/*.pyo

Krok trzeci Dystrybucja aplikacji w U*IX Skrypt run.uix #!/bin/bash exec python - $O $@ << END_START import main main.main() END_START Utworzenie pliku $ cat run.uix dist.zip > myapp $ chmod +x myapp Uruchomienie $./myapp

A jak zrobić *.exe Dystrybucja aplikacji w U*IX Moduł distutils i dodatek py2exe setup.py from distutils.core import setup import sys, os, py2exe name = sys.argv[1] sys.argv[1] = py2exe sys.path.append(os.path.dirname(os.path.abspath(name))) setup(name=name[:-3], scripts=[name])