Seite 1 von 1

RaspberryPi Flask 'Template not found'

Verfasst: Freitag 27. Dezember 2013, 12:00
von HimbeerPy
Hallo liebe Python-Gemeinde,

ich habe wie ihr in der Überschrift schon lesen könnt ein kleine Problem bei meinem Python Skript, welches auf mein Raspberry Pi laufen soll. Dies ist im finalen Stadium dazu gedacht, ein Relay über die GPIO Pins anzusteuern. Mein Problem liegt jetzt darin, dass mir von jinja2 gesagt wird, dass es das Template main.html, welches im gleichen Ordner liegt, angeblich nicht finden kann.

Meine Fehlermeldung in Putty:

* Running on http://192.168.2.109:80/
* Restarting with reloader
192.168.2.103 - - [27/Dec/2013 11:23:04] "GET /11/0 HTTP/1.1" 500 -
Traceback (most recent call last):
[...hier stand mal was, was vermutlich überflüssig für dieses Thema ist...]
TemplateNotFound: main.html
192.168.2.103 - - [27/Dec/2013 11:23:05] "GET /11/0?__debugger__=yes&cmd=resource&f=style.css HTTP/1.1" 200 -
192.168.2.103 - - [27/Dec/2013 11:23:05] "GET /11/0?__debugger__=yes&cmd=resource&f=jquery.js HTTP/1.1" 200 -
192.168.2.103 - - [27/Dec/2013 11:23:05] "GET /11/0?__debugger__=yes&cmd=resource&f=debugger.js HTTP/1.1" 200 -
192.168.2.103 - - [27/Dec/2013 11:23:05] "GET /11/0?__debugger__=yes&cmd=resource&f=console.png HTTP/1.1" 200 -
192.168.2.103 - - [27/Dec/2013 11:23:05] "GET /11/0?__debugger__=yes&cmd=resource&f=source.png HTTP/1.1" 200 -
192.168.2.103 - - [27/Dec/2013 11:23:05] "GET /11/0?__debugger__=yes&cmd=resource&f=ubuntu.ttf HTTP/1.1" 200 -


Mein Skript habe ich schon mit dem aus dem Buch Raspberry Pi für Einsteiger (http://www.amazon.de/Raspberry-f%C3%BCr ... ry+pi+buch) verglichen (man darf es auch abschreiben und an persönliche Bedürfnisse anpassen nennen).

Code: Alles auswählen

import RPi.GPIO as GPIO
from flask import Flask, render_template, request
app = Flask(__name__)

GPIO.setmode(GPIO.BOARD)

pins = {
	11:{'name':'LED1','state':GPIO.HIGH},
	13:{'name':'Lampe','state':GPIO.HIGH},
	15:{'name':'Leuchtmittel','state':GPIO.HIGH}
	}

for pin in pins:
	GPIO.setup(pin,GPIO.OUT)
	GPIO.output(pin,GPIO.HIGH)

@app.route("/")
def main():
	for pin in pins:
		pins[pin]['state'] = GPIO.input(pin)
	templateData = {
		'pins':pins
		}
	return render_template('main.html',**templateData)
	
@app.route("/<changePin>/<action>")
def action(changePin, action):
	changePin = int(changePin)
	deviceName = pins[changePin]['name']
	if action == "1":
		GPIO.output(changePin, GPIO.LOW)
		message = deviceName + "eingeschaltet."
	if action == "0":
		GPIO.output(changePin,GPIO.HIGH)
		message = deviceName + "ausgeschaltet."
		
	for pin in pins:
		pins[pin]['state'] = GPIO.input(pin)
	
	templateData = {
		'message':message,
		'pins':pins
		}
		
	return render_template('main.html', **templateData)
		
if  __name__ == "__main__":
	app.run(host='192.168.2.109', port=80, debug=True)
Vielen Dank schon mal für eure Hilfe!!

Re: RaspberryPi Flask 'Template not found'

Verfasst: Freitag 27. Dezember 2013, 12:06
von Hyperion
Ist das Template denn wirklich da, wo es *erwartet* wird? Iirc gibt es da bei Flask einen Ordner unterhalb des Hauptverzeichnisses, in dem die Dinger liegen müssen...

Re: RaspberryPi Flask 'Template not found'

Verfasst: Freitag 27. Dezember 2013, 22:58
von HimbeerPy
Uuuuuuuups!! ich habe den entscheidenden Satz überlesen!! Vielen Dank!!

Re: RaspberryPi Flask 'Template not found'

Verfasst: Samstag 28. Dezember 2013, 10:24
von HimbeerPy
Jetzt habe ich noch ein weiteres Problem: Mir wird der Fehler "UnicodeDecodeError: 'utf8' codec can't decode byte 0xe4 in position 95: invalid continuation byte" ausgegeben. Kann mir da auch wer helfen???

Re: RaspberryPi Flask 'Template not found'

Verfasst: Samstag 28. Dezember 2013, 11:21
von Sirius3
@HimbeerPy: Du hast einen String, der nicht uf8-codiert ist, den Du aber mit utf8 decodieren willst.