IoT Python Bottle Mobile App Bottuns
18003 단어 병파이썬IoTButtonsbootstrap4
Iot 기본 Mobile Broser에서 제어
버튼을 클릭하면 릴레이를 트리거한다.
Python 피 c. 라고 r. 코 m / 3 오 LH Y 예 Q — 히라타 유 (@hiratayutaka) 2018년 9월 26일
css에 대한 지식이 없어도 Boostrap 프레임 워크를 사용하여 쉽게 다채로운 버튼을 만들 수 있습니다.
아래의 /static/css /static/js 폴더에 boostrap 프레임 워크를 배치하고 있습니다.
bottle용 파일 리아웃
│ buttons.py
├─static
│ │ favicon.ico
│ │ favicon.png
│ │
│ ├─css
│ │ .DS_Store
│ │ bootstrap-grid.css
│ │ bootstrap-grid.css.map
│ │ bootstrap-grid.min.css
│ │ bootstrap-grid.min.css.map
│ │ bootstrap-reboot.css
│ │ bootstrap-reboot.css.map
│ │ bootstrap-reboot.min.css
│ │ bootstrap-reboot.min.css.map
│ │ bootstrap.css
│ │ bootstrap.css.map
│ │ bootstrap.min.css
│ │ bootstrap.min.css.map
│ │
│ └─js
│ bootstrap.bundle.js
│ bootstrap.bundle.js.map
│ bootstrap.bundle.min.js
│ bootstrap.bundle.min.js.map
│ bootstrap.js
│ bootstrap.js.map
│ bootstrap.min.js
│ bootstrap.min.js.map
│ jquery-3.3.1.min.js
│ popper.min.js
│
└─views
│ buttons.tpl
│ layout.tpl
bootstrap4를 사용하기 위한 레이아웃 템플릿
'apple-mobile-**'이 포함된 meta문은 'Stupid phone'용입니다.
layout.tpl
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="default">
<meta name="apple-mobile-web-app-title" content="{{title}}">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ title }}</title>
<link href="/static/css/bootstrap.min.css" rel="stylesheet" />
<link rel="shortcut icon" type="image/x-icon" href="/static/favicon.ico" />
<link rel="apple-touch-icon" href="/static/favicon.png" />
<script src="/static/js/jquery-3.3.1.min.js"></script>
<script src="/static/js/bootstrap.min.js"></script>
<script src="/static/js/popper.min.js"></script>
</head>
<body>
<div class="container">
{{!base}}
</div>
</body>
</html>
layout.tpl의 {{!base}} 내용 내용 정의
!important를 사용하면 스타일을 우선 할 수 있습니다. boostrap4의 버튼 형상을 정사각형(60px x 60px)으로 하고 있습니다.
% 시작하는 문장은 템플릿에 코딩 된 파이썬입니다.
오프사이드 규칙(4자리 내림)을 사용할 수 없으므로 %end로 구분합니다.
% for i in range(10):
<h1>{{ i }}</h1>
% end
{{ 변수 }}는 HTML에서 변수를 사용할 때 사용됩니다.
{{ }}는 통칭 옵파이 괄호·박수 괄호
buttons.tpl
% rebase('layout.tpl', title='Buttons')
<style>
.btnx {
padding: 1px !important;
margin: 1px !important;
height: 60px !important;
width: 60px !important;
}
</style>
<br/>
<div class="container">
% for i,x in enumerate(btns.items()):
<button class="btnx btn {{"btn-"+colors[i%8]}}" onclick="location.href='/btn/{{x[0]}}'">{{x[1]}}</button>
% end
</div>
<br/>
<div class="container">
<div class="alert alert-dark" role="alert">
% for x in btnf:
% val="checked" if btnf[x] else ""
<div class="form-check-inline">
<label class="form-check-label">
<input type="checkbox" class="form-check-input btn btn-primary" value="" disabled="disabled" {{val}}>{{x}}
</label>
</div>
% end
</div>
</div>
컬러 버튼 생성
btns에 정의된 사전 형식의 명칭 및 URL을 enumerate문에 의해 index화해 칼라를 생성하고 있습니다.
colors=["primary","secondary","success","danger","warning","info","light","dark"]
button class에 상기의 칼라를 설정하는 것으로 버튼의 색을 바꾸고 있습니다.
<div class="container">
% for i,x in enumerate(btns.items()):
<button class="btnx btn {{"btn-"+colors[i%8]}}" onclick="location.href='/btn/{{x[0]}}'">{{x[1]}}</button>
% end
</div>
이 방법은 태그 <a > 없이 링크 버튼을 만드는 방법입니다.
따라서 클릭하면/btn/< 버튼 이름 >으로 이동합니다.
<button class="btnx btn {{"btn-"+colors[i%8]}}" onclick="location.href='/btn/{{x[0]}}'">{{x[1]}}</button>
기본(wsgi) Web Server Gateway Interface 루틴
객체 이름 설명
- colors-> 컬러 테이블
- btn-> 버튼 이름 링크 대상 테이블
- btnf -> 버튼 on off flag caase on True
buttons.py
from bottle import *
colors=["primary","secondary","success","danger","warning","info","light","dark"]
btn={chr(i+ord('A')):chr(i+ord('A')) for i in range(26)}
btnf={k:False for k in btn}
@route('/')
@view('buttons.tpl')
def home():
for x in btn: btnf[x]=False
return dict(btns=btn,msg="HOME",btnf=btnf,colors=colors)
@route('/root/<para>')
@view('buttons.tpl')
def root(para):
btnf[para]=not(btnf[para])
return dict(btns=btn,msg=para,btnf=btnf,colors=colors)
@route('/btn/<btname>')
def btns(btname):
redirect('/root/'+btname)
@route('/static/<file_path:path>')
def static(file_path):
return static_file(file_path, root='./static')
run(host="192.168.1.10",port=911)
Qiita 피 c. 라고 r. 이 m/6의 r1에 Q히아
— 히라타 유 (@hiratayutaka) 2018년 9월 26일
<script async=""src="https://platform.twitter.com/widgets.js"/>
Reference
이 문제에 관하여(IoT Python Bottle Mobile App Bottuns), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hiratarich/items/7018f0990106fc29fd6b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)