pierwsza strona ze skryptem w Python'ie

0

Witam,
Muszę na zaliczenie wykonać stronę, a dokładniej "Napisać skrypt realizujący internetowy słownik". Skrypt ma być w języku Python, nigdy czegoś takiego nie robiłem i nie bardzo wiem jak się za to zabrać. Tzn kompletnie nie mam pojęcia jak się pisze takie skrypty, aby było to widoczne z przeglądarki i nie bardzo mogę cokolwiek znaleźć w sieci (tutorial od podstaw). Jeśli już to po angielsku jakiś manual. Znalazłem coś takiego http://python.about.com/od/cgiformswithpython/ss/pycgitut2_all.htm kopiowałem fragmenty kodu przedstawione tam na stronie do pliku.py wrzucałem na serwer i odpalałem, niestety z marnym efektem, oto efekt http://matrix.umcs.lublin.pl/~lobara/strona.py .
Nie proszę tutaj o rozwiązanie zadania czyli jak zrobić taki słownik tylko, jedynie o jakieś wprowadzenie do pisania takich stron, pisałem trochę w php i tam się robi to jakoś zupełnie inaczej, teraz w tym semestrze mamy przedmiot aplikacje sieciowe i tam w Javie robimy różne rzeczy sieciowe. Jak już ogarnę zasady to z samym algorytmem takiej aplikacji raczej sobie poradzę. Ewentualnie o informację jak zrobić aby np w adresie było coś takiego "slownik.py?slowo=zamek" rozumiem, że to jakieś zmienne przekazywane do funkcji, ale to już później;)
Z góry dzięki

0

Błąd to "IndentationError: unexpected indent". Wpisz sobie to szanowny panie w Google i sprawdź co to znaczy.

Python opiera się na wcięciach, zamiast klamrach, do oznaczania zagnieżdżenia instrukcji.
Np zamiast: if (warunek) { rób(); } instrukcja po ifie w Pythonie trzeba zrobić dokładnie tak:

if warunek:
<odstęp>rób()
instrukcja po ifie
0

Hmm ale ogólnie składnie znam Pythona, pisałem trochę w tamtym semestrze, ale to tak odpalane lokalnie z kompa. Nie wiem tylko jak wstawić taki kod w stronę. W PHP jest łatwo bo pisze się normalnie w HTML wstawiając od czasu do czasu kod <?php ?> A tutaj to nie wiem jak się to robi. W jakiś funkcjach? Może jakaś główna funkcja jest, która musi mieć specyficzną nazwę, bo bardzo często zdarza mi się tak, że w ogóle nie widzi pliku jak coś pozmieniam i błąd 404. Nie wiem czy fragmenty html przechodzą przez interpreter Pythona czy jak się to tak jak w PHP. Kiedyś to pisaliśmy mniej więcej takie rzeczy i na takim etapie jestem, że odpalam np taki plik interpreterem i coś się dzieje

from math import *
import math

class Wektor(object):
    def __init__(self, dlugosc): #konstruktor
        self.d = dlugosc
        
    def __str__(self): #to sting
        wynik = "["
        licznik=0
        for element in self.d:
            wynik += `element`
            if(licznik != len(self)-1):
                wynik += ", "
            licznik += 1
        wynik += "]"
        return wynik
    
    def __iadd__(self, o): #dodawanie w miejscu +=
        try:
            if len(self) == len(o):
                for i in range(len(self)):
                    self[i] = self[i] + o[i]
                return Wektor(self)
            raise RuntimeError, 'wektory są różnej długości!'
        except RuntimeError, error:
            print error
            
    def __isub__(self, o): #odejmowanie w miejscu -=
        try:
            if len(self) == len(o):
                for i in range(len(self)):
                    self.d[i] = self[i] - o[i]
                return self
            raise RuntimeError, 'wektory są różnej długości!'
        except RuntimeError, error:
            print error
            
    def __imul__(self, o): #mnożenie w miejscu *=
        wsp = []
        if isinstance(o, Wektor):
            try:
                if len(self) == len(o):
                    for i in range(len(self)):
                        wsp.append(self[i] * o[i])
                    return sum(wsp)
                raise RuntimeError, 'wektory są różnej długości!'
            except RuntimeError, error:
                print error
        else:
            for i in range(len(self.d)):
                self[i] *= o
            return self

    def __add__(self, o): #dodawanie +
        lista = []
        try:
            if len(self) == len(o):
                for i in range(len(self)):
                    lista.append(self[i] + o[i])
                return Wektor(lista)
            raise RuntimeError, 'wektory są różnej długości!'
        except RuntimeError, error:
            print error
            
    def __sub__(self, o): #odejmowanie -
        lista = []
        try:
            if len(self) == len(o):
                for i in range(len(self)):
                    lista.append(self[i] - o[i])
                return Wektor(lista)
            raise RuntimeError, 'wektory są różnej długości!'
        except RuntimeError, error:
            print error
            
    def __mul__(self, o): #mnożenie *
        lista = []
        if isinstance(o, Wektor):            
            try:
                if len(self) == len(o):
                    for i in range(len(self)):
                        lista.append(self[i] * o[i])
                    return sum(lista)
                raise RuntimeError, 'wektory są różnej długości!'
            except RuntimeError, error:
                print error
        else:
            for i in range(len(self.d)):
                lista.append(self[i] * o)
            return Wektor(lista)

    def norma(self): #norma wektora
        norma = 0.0
        for i in range(len(self)):
            norma += math.pow(self[i], 2)
        return sqrt(norma)

    def __len__(self): #długość wektora
        return len(self.d)

    def __getitem__(self, index): #zwracanie składowej wektora
        return self.d[index]

    def __setitem__(self, index, item): #ustawianie składowej wektora
        self.d[index] = item

def main():
    #TESTY:        
    w = Wektor([10, 10, 4, 6, 9, 10])
    print w
    u = Wektor([1,2,3,4])
    print u.norma()
    w.norma()
    d = Wektor([1, 3, 5, 7, 2, 42])     
    c = w+d
    print w
    print d
    print c
    w = w-d
    w = w*2

    w.norma()
    i = w + d
    i[3] = 200
    print i[3]
    w[2] = 100
    print w[2]
    print i
    print w[2]
    k = i
    k[4] = 9
    print k
    print k * i
    a = Wektor([1, 2, 3, 4])
    b = Wektor([2, 3, 4, 4])
    print a * b
    k = Wektor([1, 1, 1])
    j = a + k
    print j
if __name__ == '__main__':
    main()
0

To jak tworzysz skrypty zależy od tego z jakich bibliotek/ frameworków/ etc korzystasz. Przykładowo kod:

print '<html>dupa</html'

Wypluwa kod HTMLowy na standardowe wyjście. Ty nie chcesz mieć tego na standardowym wyjściu, tylko chcesz to wysłać do klienta. A więc musisz zrobić to inaczej, np użyć http://docs.python.org/2/library/basehttpserver.html

0

O kurcze to chyba trudniejsze niż myślałem...

A czy mógłbyś podać jakiś krótki fragment kodu który jakoś się odpali i zrobi coś na stronie? Jeśli chodzi o frameworki to nie wiem jakie są i też nie wiem jak to sprawdzić, serwer uczelniany

1 użytkowników online, w tym zalogowanych: 0, gości: 1