Avatar billede tangveje Nybegynder
02. juni 2003 - 23:10 Der er 1 løsning

Python : Hvor gemmer fejlen sig?

Hej, sidder og leger lidt med Python (med mod_python under apache), og forsøger at oversætte nogle forskellige PHP scripts jeg har liggende... Jeg er ind til videre nået frem til dette (et meget simpelt template system), men det virker ikke rigtigt. Jeg har desværre ingen ide om hvor fejlen ligger, da jeg ikke får nogen fejlmeldinger, men den udskriver slet intet hvilket den gerne skulle (skulle gerne udskrive indholdet af de to html filer index.html og menu.html). Håber nogen kan finde fejlen.

#!/usr/bin/python

import string
import re

print "Content-Type: text/html\n\n"

class template :
    template = {}

    # Load template from 'filename' and save it as 'name'
    def load( self, name, filename ) :
        file = '../lib/templates/' + filename

        fh = open( file, 'r' )

        self.template[name] = fh.read( )

        fh.close( )

        if self.template[name] :
            return 1
        else :
            return 0

    # Replace 'key' with 'value' in 'template'
    def addValue( self, template, key, value ) :
        key = '{' + key + '}'
        value = value + key

        self.template[template] = replace( self.template[template], key, value )

    # Replace 'key' with the content of template 'ty' in the template named 'tx'
    def addTemplate( self, tx, key, ty ) :
        key = '{' + key + '}'

        self.template[tx] = replace( self.template[tx], key, self.template[ty] )

    # Remove all template tags in 'template'
    def clean( self, template ) :
        self.template[template] = re.sub( '\{[A-Z0-9.-_]+\}', self.template[template], '' )

    # Remove all template tags in 'template' and send it to the user
    def send( self, template ) :
        self.clean( template )

        print self.template[template]

# Test kode
template = template( )

template.load( 'main', 'index.html' )
template.load( 'menu', 'menu.html' )

template.addTemplate( 'main', 'MENU', 'menu' )

template.send( 'main' )
Avatar billede tangveje Nybegynder
03. juni 2003 - 00:07 #1
Lykkedes mig at finde fejlen (eller rettere fejlene), og nu virker det... Lukker her

Havde glemt string.replace istedet for bare replace

Og så havde jeg byttet rundt på de to sidste parametre i sub() funktionen :(
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester