1.目录结构:
root@bogon:~# tree flask/yw/ flask/yw/ ├── bootstrap.zip #下载的bootstrap,解压的文件移动到下面的static目录里 ├── run.py #运行配置文件 ├── static #静态文件目录,存放静态文件,如:css...等,把bootstrap解压的文件移动到这个目录下 │ ├── css │ │ ├── bootstrap.css │ │ ├── bootstrap.min.css │ │ ├── bootstrap-responsive.css │ │ └── bootstrap-responsive.min.css │ ├── fonts │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ └── glyphicons-halflings-regular.woff │ ├── img #图片目录 │ │ ├── 2014 │ │ │ ├── bing.png #画的饼状图片 │ │ │ └── ttt.png #画的流量图 │ │ ├── glyphicons-halflings.png │ │ └── glyphicons-halflings-white.png │ ├── index.html │ ├── index.html.bak │ └── js │ ├── bootstrap.js │ ├── bootstrap.min.js │ └── npm.js ├── static.tar.gz └── templates #模板文件 ├── admin.html ├── admin_info.html ├── base.html ├── cmd.html ├── docker.html ├── fw.html ├── kvm.html ├── ll.html ├── login.html ├── mode_base_index.html └── salt.html
2.运行配置文件内容:
root@bogon:~# cat flask/yw/run.py #!/bin/python from flask import Flask,flash,request,render_template,url_for,redirect,session,abort,escape import os,sqlite3,datetime SECRET_KEY = '123456' app = Flask(__name__) app.config.from_envvar('FLASKR_SETTING',silent=True) app.secret_key = '123456' ########################################################## ########################################################## @app.route('/',methods=['GET','POST']) def index(): if 'username' not in session or session['username'] == '': return redirect(url_for('login')) else: return redirect(url_for('admin2')) @app.route('/login/',methods=['GET','POST']) def login(): if request.method == 'POST': session['username'] = request.form['username'] session['passwd'] = request.form['passwd'] username = request.form['username'] passwd = request.form['passwd'] if username == None or passwd == '': return redirect(url_for('login')) #return redirect(url_for('user')) else: return redirect(url_for('admin2')) return render_template('login.html') @app.route('/admin2/',methods=['GET','POST']) @app.route('/admin2/<post_info>',methods=['GET','POST']) def admin2(post_info='info',state=None,ser=None): shell=[] info=[] info.append(os.popen('df -m').read()) info.append(os.popen('free -m').read()) info.append(os.popen('uname -a').read()) info.append(os.popen('uptime').read()) info.append(os.popen('ifconfig eth0|grep inet').read()) if 'username' not in session or session['username'] == '': return redirect(url_for('login')) else: username = session['username'] if post_info == 'info': active='active' return render_template('admin_info.html',info=info,username=username,active_info=active) if post_info == 'll': active='active' return render_template('ll.html',username=username,active_ll=active) if post_info == 'fw': active='active' if request.method == 'POST': aa= request.form fw_active='/etc/init.d/' if 'start' in aa:os.system("%s%s start"%(fw_active,aa['start'])) if 'stop' in aa:os.system('%s%s stop'%(fw_active,aa['stop'])) if 'restart' in aa:os.system('%s%s restart'%(fw_active,aa['restart'])) fw=os.popen('service --status-all').read().split('\n') fw.remove('') return render_template('fw.html',fw=fw,username=username,active_fw=active) if post_info == 'cmd': active='active' if request.method == 'POST': print request.form cmd = request.form['cmd-txt'] shell= os.popen(cmd).read() return render_template('cmd.html',shell=shell,username=username,active_cmd=active) if post_info == 'kvm': active='active' return render_template('kvm.html',username=username,active_kvm=active) if post_info == 'docker': active='active' return render_template('docker.html',username=username,active_docker=active) if post_info == 'salt': active='active' return render_template('salt.html',username=username,active_salt=active) if post_info == 'users': active='active' return render_template('salt.html',username=username,active_users=active) if post_info == 'about': active='active' return render_template('salt.html',username=username,active_about=active) @app.route('/logout/') def logout(): session.pop('username',None) session.pop('passwd',None) return redirect(url_for('login')) @app.route('/post/<int:post_id>') def show_post(post_id): return 'post_id:%s' % post_id if __name__ == '__main__': app.run(host='0.0.0.0',port=80,debug=True)
3.bootstrap改造:
http://v3.bootcss.com/examples/signin/
http://v3.bootcss.com/examples/offcanvas/
4.运行效果: