Na tej stronie znajdziecie ogłoszenia (głównie natury organizacyjnej), materiały do laboratoriów oraz linki do różnych innych stron związanych z zajęciami.
Gwoli wyjaśnienia, ze spraw starych: projekt jest na ocenę; oddając go po terminie można dostać maks. 4; za każde niezaliczone małe zadanie traci się 0.5 oceny, przy czym można mieć niezaliczone tylko dwa.
Ze spraw nowych: jako, że w projekcie ostatecznie nie będziecie używać
własnego logowania tylko django.contrib.auth
, dlatego
zadanie 5 ze scenariusza o Django jest
opcjonalne. Wykonanie go poprawnie to 0.5 oceny w górę (do maks. 5! na
koniec).
W dniach 3.05-24.05 będę uprawiał risercz w hameryce. W związku z tym zajęcia
w tym okresie (8/15/22.05) będą wirtualne. Oznacza
to, że lab fizycznie nie będzie się odbywał natomiast będe umieszczał (bardziej
obfite niż zwykle) informacje o materiale do przerobienia na zajęciach. Polityka
oddawania zadań pozostaje taka jak wcześniej (dot. zadania z Django).
Przepraszam, ale nie zdążyłem sprawdzić wczoraj i będą sprawdzone dopiero 6.04 - cierpliwości.
W związku z tym, że nie będzie mnie za tydzień będziecie mieli zastępstwo z Aleksandrem Jankowskim. Zadanie z jutrzejszego labu należy przesłać mi do poniedziałku 6.04.
Z ustaleń odgórnych: po każdych fizycznie odbytych labach prześlijcie prowadzącemu informację o tym, gdzie stoi rozwiązanie zadania. Macie prawo dwa razy tego nie zrobić przed kolejnymi zajęciami. Reguła ta obowiązuje od dnia dzisiejszego. Termin oddania wiki (oraz CMSa) to następne laby.
Skrótowe scenariusze oraz materiały z laboratoriów będą się pojawiać wraz z kolejnymi zajęciami.
Celem jest zainstalowanie własnego wiki na swoim koncie na students.
Wpierw upewnij się, że:
public_html
w swoim katalogu domowym .htaccess
),Scenariusz oraz szczegółowe instrukcje do zadania znajdziesz na wiki labów.
Tym razem na swoim koncie na students chcemy zainstalować system zarządzania treścią (CMS).
Na końcu przyda nam się zainstalowane na poprzednich labach wiki.
Scenariusz oraz szczegółowe instrukcje do zadania są dostępne na wiki labów.
Rozpoczeniemy pracę nad dużym zadaniem zaliczeniowym poprzez stworzenie projektu interfejsu w postaci kilku statycznych stron (HTML) z arkuszami stylów (CSS).
Znajomość podstaw HTML i CSS, np. z wykładu, czy z jednej z referencji lub kursów podlinkowanych w scenariuszu (część "Być może przydatne linki").
Scenariusz z wymaganiami odnośnie stron i arkuszy dostępne są na wiki labów.
Uwaga: ze względu na to, że jest to zadanie na dwa laby to ostateczny termin oddania zadania to lab 5. Na labie 4-tym obejrzę dotychczasowe wyniki pracy (co najmniej strona główna + układ, rozwijane menu i wersja do druku).
Tu znajdziecie przykładowe rozwiązanie samego układu strony, zgodnie z wymogami z zadania oraz kilkoma dodatkowymi, które ja (scrollbar na brzegu przeglądarki i statyczny układ) oraz część z Was (wyśrodkowana strona) chciała mieć spełnione. CSS jest obficie komentowany. Polecam ściągnięcie i pobawienie się (obecnie odkomentowane są właściwości do debugowania np. przezroczystość tła).
Wykonanie statycznego layoutu w praktyce nie jest najlepszym rozwiązaniem, zwłaszcza jeśli chodzi o czas i wygodę wykonania (i szczerze mówiąc nie polecam). Ma jednak dużą zaletę akademicką odnośnie nauki pozycjonowania. Rozwiązania z pływającymi panelami też będą uznawane za poprawne.
Wyśrodkowanie strony bez ustalonej szerokości (czyli z ustaloną szerokością marginesu) też jest raczej ćwiczeniem akademickim i w przypadku tego zadania służy jedynie spełnieniu jego wymogów odnośnie skalowania panelu głównego do pewnej minimalnej szerokości.
Dodamy pierwsze elementy logiki do tworzonego projektu w postaci prostego, "ręcznego" mechanizmu bezpiecznego zakładania konta i logowania.
Scenariusz oraz szczegółowe instrukcje do zadania dostępne są na wiki labów.
Przerobimy mechanizm logowania tak aby używał AJAX. Do tego dodamy ekstra info wyświetlane na czas przetwarzania żądania logowania.
Serię zadań z instrukcjami znajdziecie na wiki labów.
Zastępstwo z Aleksandrem Jankowskim
Na czas logowania wyświetlane będą całkowicie zbędne i radosne wodotryski.
Zaimplementowane logowanie z użyciem AJAX z poprzedniego labu.
Pomysły na wodotryski oraz linki do bibliotek JavaScript (prototype, jQuery etc.) znajdziecie na wiki labów.
Prosty pająk internetowy napisany w Pythonie.
Podstawy Pythona (np. crash course).
Standardowo znajdziecie je na wiki labów.
?
): ipython
. Po konkret:import urllib2 # ... url = urllib2.urlopen("http://thedailywtf.com/") # Uwaga: jako argument prawowity URL, tzn. z nazwą protokołu "http://..."
from urllib2 import urlopen
- wtedy można używać bez
prefiksu urllib2.
.
python setup.py install --home path_to_home
.
Używa się jakoś tak:
Więcej w dokumentacji.# ... from BeautifulSoup import BeautifulSoup soup = BeautifulSoup(''.join(url.readlines())) soup.body
Standardowe wejście i tablica z argumentami z linii poleceń dostępne są poprzez bibliotekę systemowąf = open(r'filename', 'r') # r'...' - raw string (na backslashe i te sprawy) for line in f.readline(): #.... f.close()
sys
Opcjonalnie dla prosów tudzież pedantów:#... import sys # ... sys.argv # ... line = sys.stdin.readline() while line: # ... line = sys.stdin.readline()
getopt
.
i z linii poleceń#!/usr/bin/env python # ... if __name__ == "__main__": # moduł został uruchomiony do wykonania a nie importowany # kod do wykonania np. main()
python myapp.py
lub odpowiednio zmienić
uprawnienia i ./myapp.py
.
# -*- coding: utf-8 -*-
Dorabiamy mięso do wcześniej przygotowanych statycznych stron projektu.
Ogólnikowy opis kroków do wykonania znajdziecie na wiki labów.
Na pierwszym (jeszcze nie wirtualnym labie) wykonaliśmy zadania 0-2 ze scenariusza, co oznacza, że powinieneś być zaznajomiony z:
W ramach wirtualnego laba z 15.05 przeczytaj o kolejnych klockach aplikacji WWW tworzonej z pomocą Django, tzn o:
Tak doedukowany wykonaj dla swojej aktualnie tworzonej aplikacji w ramach
projektu Django zadania 3 i 4 ze scenariusza. Uwzględnij co najmniej jeden
formularz. Następnie opcjonalnie wykonaj trudniejsze zadanie
5-te (będzie ono wymagało ogarnięcia wcześniej wymienionych elementów Django) -
być może przydatne linki znajdziesz w treści. Jeżeli nie będziesz robił zad. 5
to do uwierzytelniania użytkowników użyj django.contrib.auth
.
Uzupełnij projekt tak aby poza logowaniem i rejestracją działała jeszcze
jakaś funkcjonalność (galeria lub blog). Spakowany projekt Django (paczka
.zip
) jest do dostarczenia jako zaliczenie tych dwóch labów
(do 25.05). W razie jakichkolwiek pytań
piszcie mejle!
Przygotowanie finalnej wersji projektu.
Zaliczone zadania z wszystkich poprzednich labów z wyjątkiem maksymalnie dwóch.
Znajdziecie je na wiki labów