2017-12-15 17 views
0

나는 python으로 버튼을 눌러 로컬 웹 사이트를 구축하고 있으므로 라즈베리 파이를 사용하여 내 방의 문이 열린다. 저는 이미 python 프로그램을 만들었습니다. 실행하면 문을 완벽하게 열어 줍니다. 그러나 HTML을 사용하여 파일을 실행하여 문을 열 수있는 버튼을 만들려고합니다.HTML 출력을 파이썬으로 되 돌린다

<html> 
<body> 
<a href="/opendoor" class="openbutton">Open for me please</a> 
</body> 
</html> 

그것은이다

from flask import Flask, render_template 
from test import open_door 

app = Flask(__name__) 


@app.route('/open/door') 
def doorOpen(): 
    return render_template('door.html') 

@app.route('/opendoor') 
def openDoor(): 
    open_door() 
    return 'the door should be open' 


if __name__ == '__main__': 
app.run(debug=True, host='0.0.0.0') 
다음

실행하면 문을 열 것이다 파일 test.py이며, door.html은 다음과 같다 :

내가 이미 가지고있는 것입니다 멋진 것은 아니지만 지금은 작동해야합니다. openDoor() 함수에서 return 및 print 함수를 추가 했으므로 리턴이 아무 것도하지 않는 것처럼 보입니다. 나는 문제가 무엇인지 궁금해서 인터넷에서 어떤 작은 접시도 찾을 수 없다!

p.s. 이것은 파이썬 내 처음으로 내가 HTML 편집과 초보자 이니, 당신은 당신의 로컬 호스트에서 다른 페이지로 경로 버튼을 수

import RPi.GPIO as GPIO 
import time 

testPin = 18 

GPIO.setmode(GPIO.BCM) 
GPIO.setup(testPin, GPIO.OUT) 

counter =0 

def open_door(): 
    try: 
     while counter < 900000: 
      GPIO.output(testPin, GPIO.HIGH) 

      counter += 1 

    except: 
     print ("Everything is oke!") 

    finally: 
     GPIO.cleanup() 

답변

1

대신의 온 클릭 기능 :이 test.py입니다

door.html에서
from flask import Flask, render_template 
from test import open_door 
app = Flask(__name__) 

@app.route('/') 
def doorOpen() 
    return render_template('door.html') 

@app.route('/opendoor') 
def openDoor(): 
    open_door() 

if __name__ == '__main__': 
    app.run(debug=True, host='0.0.0.0') 

: HTML 파일에서

<html> 
<body> 
<a href="/opendoor" class="openbutton">Open Door</a> 
</body> 
</html> 

, class="openbutton" 순수한 스타일링 목적이다.

+0

'Open Door'이 작동해야하며 호스트 이름에 대한 지식이 필요하지 않습니다. –

+0

@ Rob my 내 최근 편집을 참조하십시오. – Ajax1234

+0

test()가 정의되지 않았다는 메시지가 나타납니다. 다른 파일을 실행하는 방법을 찾을 수 없다. – Kuunnn