RaspberryPi Flask 'Template not found'

Python in C/C++ embedden, C-Module, ctypes, Cython, SWIG, SIP etc sind hier richtig.
Antworten
HimbeerPy
User
Beiträge: 3
Registriert: Freitag 27. Dezember 2013, 11:29

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!!
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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...
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
HimbeerPy
User
Beiträge: 3
Registriert: Freitag 27. Dezember 2013, 11:29

Uuuuuuuups!! ich habe den entscheidenden Satz überlesen!! Vielen Dank!!
HimbeerPy
User
Beiträge: 3
Registriert: Freitag 27. Dezember 2013, 11:29

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???
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@HimbeerPy: Du hast einen String, der nicht uf8-codiert ist, den Du aber mit utf8 decodieren willst.
Antworten