---flask_web.py
|
---fileutil.py
|
---user.txt
|
---templates
|
+---login.html
|
+---list.html
|
|
---fileutil.py
|
---user.txt
|
---templates
|
+---login.html
|
+---list.html
|
+---update.html
#flask_web.py
from flask import Flask,request,render_template,redirect,session
import fileutil
fileutil.read_file()
app = Flask(__name__)
app.secret_key = 'chrisseismic'
@app.route('/')
def index():
if 'username' in session:
return redirect('/list')
return render_template('login.html')
# @app.route('/login',methods=['GET','POST'])
# def login():
# if request.method=='GET':
# return render_template('login.html')
# elif request.method=='POST':
# user = request.form.get('user')
@app.route('/logout')
def logout():
session.pop('username')
return redirect('/')
@app.route('/loginaction')
def loginaction():
user = request.args.get('user')
pwd = request.args.get('pwd')
error_msg = ''
if user and pwd:
if user == 'admin' and pwd == 'admin':
session['username'] = 'admin'
return redirect('/list')
else:
error_msg = 'Wrong user or password'
else:
error_msg = 'need user and pwd'
return render_template('login.html',error_msg=error_msg)
@app.route('/del')
def del_user():
user = request.args.get('user')
fileutil.file_dict.pop(user)
fileutil.write_file()
return redirect('/list')
@app.route('/update')
def update():
user = request.args.get('user')
pwd = fileutil.file_dict.get(user)
return render_template('update.html',pwd=pwd,user=user)
@app.route('/updateaction')
def updateaction():
new_pwd = request.args.get('new_pwd')
user = request.args.get('user')
fileutil.file_dict[user] = new_pwd
fileutil.write_file()
return redirect('/list')
@app.route('/adduser')
def adduser():
user = request.args.get('user')
pwd = request.args.get('pwd')
if user in fileutil.file_dict:
return redirect('/list')
else:
fileutil.file_dict[user] = pwd
fileutil.write_file()
return redirect('/list')
@app.route('/list')
def userlist():
if 'username' in session:
return render_template('list.html',userlist=fileutil.file_dict.items())
else:
return redirect('/')
if __name__=='__main__':
app.run(host='0.0.0.0',port=9092,debug=True)
#fileutil.py
#user:pwd
file_dict = {}
# file => dict
def read_file():
with open('user.txt') as f:
for line in f.read().split('\n'):
if line:
temp = line.split(':')
file_dict[temp[0]] = temp[1]
# dict => file
def write_file():
file_arr = []
for user,pwd in file_dict.items():
file_arr.append('%s:%s' % (user,pwd))
with open('user.txt','w') as f:
f.write('\n'.join(file_arr))
#user.txt
jiaoshou:978
sherman:98565
sunfan:546
nancy:678
chris:789
csfc:523
<!-- login.html -->
<p style='color:red'>
{{error_msg}}
</p>
<!-- <form method='POST' action='/loginaction'> -->
<form action='/loginaction'>
admin_user:<input name = 'user' type = 'text'>
admin_pwd:<input name = 'pwd' type = 'text'>
<input type='submit' value='login'>
</form>
<!-- list.html -->
<a href='/logout'>logout</a>
<form action='/adduser'>
user:<input type='text' name='user'>
pwd:<input type='text' name='pwd'>
<input type='submit' value='add'>
</form>
<table border='1'>
<tr>
<th>user</th>
<th>pwd</th>
<th>action</th>
</tr>
{% for user in userlist%}
<tr>
<td>{{user[0]}}</td>
<td>{{user[1]}}</td>
<td>
<a href='/del?user={{user[0]}}'>delete</a>
<a href='/update?user={{user[0]}}'>update</a>
</td>
</tr>
{% endfor %}
</table>
<!-- update.html -->
<form action = '/updateaction'>
user:{{user}}<input type='hidden' name='user' value='{{user}}'>
pwd:<input type='text' name='new_pwd' value='{{pwd}}'>
<input type='submit' value='update'>
</form>