Info o ciastkach

Eeee...
Żeby strona działała fajnie to trzeba zaakceptować obsługę pewnych plików. Jeśli jesteś nienormalny, nosisz czapkę z amelinium i siedzisz w schronie zbudowanym z poduszek to możesz je sobie wyłączyć. Autor strony nie czerpie żadnych korzyści z cookies (twierdzi nawet, że ten komunikat jest głupi), ale, cóż - Unia wymaga. Korzystając z witryny zgadzasz się z polityką cookies.

Wszystko w budowie...

Tabela html w pythonie

Według mnie nie ma niczego gorszego niż tabele w html. Masa niemożliwych do wyobrażenia znaczników. Jeden błąd i wszystko się rozlatuje. W PHP całość się nieco prostuje bo tabelę można utworzyć automatycznie. Co jeśli nie mamy dostępu do backendu?

Kolejny przydatny skrypcik w Pythonie - automatyczne tworzenie tablicy ze znacznikami html. Całość jest prosta - brak col- czy rowspanów i dodatkowych znaczników.

Do thead() trafiają nagłówki i na tej podstawie jest liczona ilość kolumn (self.x). Jeśli ilość kolumn dla danych jest inna niż dla nagłówka to wyskoczy informacja w której linii dane się nie zgadzają. thead() jest opcjonalne. A kod wygląda tak



#! python3

class Tab():
    def __init__(self):
        self.table = ''
        self.x = 0
        self.naglowek = ''
        self.dane = ''

    def tab(self):
        self.table = '<table>\n%s\n</table>\n' % (self.table)

    def thead(self,naglowki):
        self.naglowek = '<thead>\n<tr>\n<th>%s</th>\n</tr>\n</thead>\n' % ('</th><th>'.join(naglowki))
        self.x = len(naglowki)
         
    def tbody(self,dane):
        self.dane += '<tbody>'
        i = 0
        for v in dane:
            i += 1
            if self.x != len(v):
                print('Niezgodność danych w linii '+str(i))
            self.dane += '\n<tr><td>%s</td></tr>' % ('</td><td>'.join(v))
        self.dane += '\n</tbody>'

    def pokaz(self):
        self.table = self.naglowek+self.dane
        self.tab()
        return self.table

#przykładowa tabela
t  = Tab()
t.thead(['a','b','c'])
t.tbody([
    ['1a','1b','1c'],
    ['2a','2b','2c']
])
print(t.pokaz())

Można jeszcze użyć modułu pyperclip, żeby wysłać tablicę do schowka lub wyeksportować ją do pliku.

Komentarze (2)

csk(admin) ( 2018-01-09 07:01:56 )
Re: Datatables
Nie znałem tego. Przyda się. Dzięki.
arni ( 2018-01-08 22:34:22 )
Tabele w HTML? Polecam datatables - świetne i proste w implementacji

Napisz komentarz lub zgłoś błąd

Dodane w dniu 24 grudnia 2017 przez Michał Misztal
Kopiowanie powyższych wypocin dozwolone pod warunkiem podania źródła, znaczy tandemu autor + link do strony