Krzysztof Ciebiera na podstawie

Slides:



Advertisements
Podobne prezentacje
Marcin Piotrowski. Najpopularniejszymi darmowymi przeglądarkami są Internet Explorer, Opera, Mozilla Firefox, Google Chrome.
Advertisements

Procedury wyzwalane Procedura wyzwalana (ang. trigger) - stanowi kod użytkownika przechowywany wewnątrz bazy i uruchamiany w określonych sytuacjach np.
1 Dzisiejszy wykład Wzorce funkcji Wzorce klas. 2 Wzorce Często pojawia się konieczność pisania podobnych funkcji lub klas operujących na argumentach.
1 Dzisiejszy wykład Wzorce funkcji Wzorce klas Tablica asocjacyjna Składowe statyczne.
Rafał Hryniów Tomasz Pieciukiewicz
Zaawansowane metody programowania – Wykład V
SQL INJECTION Wykorzystanie błędów w językach skryptowych
Bezpieczeństwo wyjątków w C++: OpenGL
SYSTEM INTERNETOWY OLIMPIADY & UNIVERSAL PYTHON FRAMEWORK & UNIVERSAL PYTHON FRAMEWORK Szymon Acedański, Piotr Findeisen, Filip Grządkowski, Michał Jaszczyk,
SQL Server Native XML Web Services
ISOiWUT Internetowy System Oferowania i Wyszukiwania Usług Transportowych.
Szablony (wzorce) Przykład 1: Szablon klasy -
Współprogramy III Ten wykład ma na celu pokazanie kolejnej ciekawej możliwości, którą oferują współprogramy. Wspólprogramy reprezentujące wyrażenia regularne.
Licznik template<class Count_Type> class Count { public:
25/08/ Bazy danych II Piotr Górczyński Administracja MS SQL.
Model – View - Controler
Arkadiusz Twardoń ZTiPSK
Aplikacje w sieciach Internet/Intranet
EMF i Genmodel Projekt org.inmost.crm.teneo.
Obiektowe metody projektowania systemów
Obsługa plików csv Do odczytu z pliku csv można użyć następującego kodu: $fp = fopen ("strony.csv","r"); $num = 0; while ($data = fgetcsv ($fp, 1000, ";"))
WYZWALACZE (TRIGGERY) Wyzwalacz jest specjalnym rodzajem procedury składowanej, która może być wykonana w odpowiedzi na jedną z trzech sytuacji: UPDATE.
Czytanie, pisanie i rysowanie – cd.. Jeszcze jeden strumyk PrintStream działa jak PrintWriter, ale: Używa domyślnego (systemowego) kodowania Nie wyrzuca.
Instalacja Apacha Instalacja serwera www ogranicza sie do uruchomienia pliku .exe oraz do wpisania adresu serwera, oraz a administratora czego.
Narzędzia internetowe Paweł Rajba ttp://pawel.ii.uni.wroc.pl/
Wprowadzenie do JSP Copyright © Politecnico di Milano September 2003 Translation: Kamil Żyła, Politechnika Lubelska.
Jak zrobić dobrą prezentację? Zasady dobrego stylu.
Robi bo musi, czy Ruby bo lubi?
Skąd się wzięły cyfry? … 5.
O Rubym słów kilka… Simple Pinger O mnie: Maciej Mensfeld ruby
Technologie tworzenia aplikacji internetowych Wykład 3
Promotor: dr.inż. Aleksandra Werner
Arkadiusz Twardoń ZTiPSK
MAKRA 1.
XML – eXtensible Markup Language 2. Nazwy atrybutów i elementów w języku XML muszą spełniać te same reguły (te same reguły musza spełniać też inne, rzadziej.
Wykład IV Protokoły BOOTP oraz DHCP.
XML – eXtensible Markup Language
Temat 8: Listy.
Tworzenie Aplikacji Internetowych
Tworzenie Aplikacji Internetowych dr Wojciech M. Gańcza 8.
Tworzenie Aplikacji Internetowych dr Wojciech M. Gańcza 3.
Systemy Zarządzania Bazami Danych
Specjalizacja "Dziennikarstwo On-line„ asynchroniczny JavaScript i XML – AJAX Część 6 Prowadzący: Dariusz Jaruga
Integracja iStore z programem Subiekt GT
Systemy zarządzania treścią Wykład 5
PL/SQL – dalsza wędrówka
Projektowanie stron WWW
Aplikacje internetowe Łącza hipertekstowe. Tworzenie hiperpołączeń Do utworzenia połączenia w języku HTML potrzebne są następujące informacje: nazwa pliku.
Entity Framework worth it or not?
Czy to się da policzyć ? Statystyka także jest dla smyka
Hibernate Podstawy.
Odwzorowania relacyjno-obiektowe Hibernate Podstawy.
Wzorce Projektowe w JAVA
Dr inż. Piotr Czapiewski. Framework (rama projektowa, szkielet) to w programowaniu struktura wspomagająca tworzenie, rozwój i testowanie powstającej.
Projektowanie postaci formularza:
Object-relational mapping (aka O/RM, ORM, and O/R mapping)
Karol Więsek PwC Abusing APNs for profit. Historia: audyt sieci jednego z operatorów Po powrocie: „czyste” karty SIM.
Portal edukacyjny J A V A S C R I P T JĘZYK PROGRAMOWANIA STRON HTML Opracowała: Anna Śmigielska.
Aplikacje internetowe XML Paweł Lenkiewicz. Aplikacje internetowe – XML2 eXtensible Markup Language Uniwersalny język opisu danych Często używany we współpracy.
Języki i technologie wytwarzania stron WWW Autor: Michał Walkowski Referat.
Interfejs użytkownika „No matter how cool your interface is, less of it would be better”
Prototypowanie w ORACLE DESIGNER Transformacja Modelu danych.
Implementacja wzorca MVVM w Prism 5.0
Refaktoryzacja „Any fool can write a code that computer understands. Good programers write code that human can understand” – Martin Fowler.
Kamil Herba Juliusz Sompolski 2 marca 2009 ASDL: wyciąganie literatury budowa serwisu.
ST | 9/16/2015 | © Robert Bosch GmbH All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well.
„Artysta z Przeszłości”
Dobre praktyki w Django REST Framework
Michał Gmerek|Programowanie aplikacji internetowych
Zapis prezentacji:

Krzysztof Ciebiera na podstawie http://www.djangobook.com/ Django cz.1 Krzysztof Ciebiera na podstawie http://www.djangobook.com/

Jak działa CGI? import MySQLdb print "Content-Type: text/html" print print "<html><head><title>Books</title></head>" print "<body>" print "<h1>Books</h1>" print "<ul>" connection = MySQLdb.connect(user='me', passwd='letmein', db='my_db') cursor = connection.cursor() cursor.execute("SELECT name FROM books ORDER BY pub_date DESC LIMIT 10")

Jak działa CGI? for row in cursor.fetchall(): print "<li>%s</li>" % row[0] print "</ul>" print "</body></html>" connection.close()

Wady CGI Dlaczego musimy się łączyć w ten sposób z bazą danych? Czy sami powinniśmy pamiętać o Content-Type i zamknięciu bazy danych? Jak używać tego samego kodu w różnych konfiguracjach? Co ma robić projektant stron, nie znający pythona?

Model MVC model – zawiera opis danych widok – zawiera logikę mapowanie – mówi jaki url uruchamia którą funkcję szablon – pokazuje jak to wyświetlać

Model # models.py (the database tables) from django.db import models class Book(models.Model): name = models.CharField(maxlength=50) pub_date = models.DateField()

Widok # views.py (the business logic) from django.shortcuts import render_to_response from models import Book def latest_books(request): book_list = Book.objects.order_by('- pub_date')[:10] return render_to_response('latest_books.html', {'book_list': book_list})

Mapowanie # urls.py (the URL configuration) from django.conf.urls.defaults import * import views urlpatterns = patterns('', (r'latest/$', views.latest_books), )

Szablon # latest_books.html (the template) <html><head><title>Books</title></head> <body> <h1>Books</h1> <ul> {% for book in book_list %} <li>{{ book.name }}</li> {% endfor %} </ul> </body></html>

Jak uruchomić Django? Potrzebny jest python django-admin.py startproject mysite __init__.py manage.py settings.py urls.py python manage.py runserver 8080

Najprostsza aplikacja from django.http import HttpResponse import datetime def current_datetime(request): now = datetime.datetime.now() html = "<html><body>It is now %s.</body></html>" % now return HttpResponse(html) Ale skąd system wie, że tą funkcję trzeba uruchomić?

Mapowanie aplikacji from django.conf.urls.defaults import * from mysite.views import current_datetime urlpatterns = patterns('', (r'^time/$', current_datetime), )

Wyrażenia regularne . (kropka) cokolwiek \d cyfra [A-Z] wielka litera [a-z] mała litera [A-Za-z] jakakolwiek litera + jeden lub więcej [^/] wszystko oprócz ukośnika * zero lub więcej {1,3} między jeden a trzy

Jak to działa Django importuje settings.py Ustawia ROOT_URLCONF UrlConf odpowiada za przekazanie żądania do widoku (mamy słabe wiązania) Widok odpowiada za zwrócenie HttpResponse Naprawdę to jest odrobinkę bardziej skomplikowane!

Dynamiczne URL mapowanie from django.conf.urls.defaults import * from mysite.views import current_datetime, hours_ahead urlpatterns = patterns('', (r'^time/$', current_datetime), (r'^time/plus/(\d{1,2})/$', hours_ahead), )

Dynamiczne URL obsługa def hours_ahead(request, offset): offset = int(offset) dt = datetime.datetime.now() + datetime.timedelta(hours=offset) html = "<html><body>In %s hour(s), it will be %s.</body></html>" % (offset, dt) return HttpResponse(html) Komunikaty o błędach są sensowne!