#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/11/2 20:53
# @Author : zoulixiang
# @Site :
# @File : s2.py
# @Software: PyCharm from flask import Flask,render_template,request,redirect,session,url_for app = Flask(__name__)
#自动重启和检测,调试模式
app.debug = True USERS = {
1:{'name':'z','age':12,'gender':'男','text':'ssssssss'},
2:{'name':'z1','age':13,'gender':'男','text':'xxxxxxxx'},
3:{'name':'z1','age':14,'gender':'女','text':'hhhhhhhh'}
} @app.route('/detail/<int:nid>',methods=['GET'])
def detail(nid):
# 当你登录成功之后,session是有值,有值之后上面每个登录都需要重新判断
user = session.get('user_info')
if not user:
return redirect('/login')
info = USERS.get(nid)
return render_template('detail.html',info=info) @app.route('/index',methods=['GET'])
def index():
#session #当你登录成功之后,session是有值,有值之后上面每个登录都需要重新判断
user = session.get('user_info')
if not user:
#反向生成url
url = url_for('l1')
return redirect(url)
return render_template('index.html',user_dict=USERS) @app.route('/login',methods=['GET','POST'],endpoint='l1') #endpoin 别名
def login():
if request.method == "GET":
return render_template('login.html')
else:
user = request.form.get('user')
pwd = request.form.get('pwd')
if user == 'alex' and pwd == '':
#当你登录成功之后,session是有值,有值之后上面每个登录都需要重新判断
session['user_info'] = user
print(session['user_info'])
return redirect('https://www.baidu.com')
return render_template('login.html',error = '用户名或密码错误') if __name__ == '__main__':
app.run()
2.tmplates目录
login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>用户登录</h1>
<form method="post">
<input type="text" name="user">
<input type="text" name="pwd">
<input type="submit" name="登录">{{error}}
</form></body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>用户列表</h1>
<table>
{% for k,v in user_dict.items() %}
<tr>
<td>{{k}}</td>
<td>{{v.name}} {{v['name']}} {{v.get('name')}} </td>
<td><a href="/detail/{{k}}" rel="external nofollow" >查看详细</a></td>
</tr>
{% endfor %}
</table></body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>详细信息</h1>
<div>
{{ info.name }}
{{ info.text }}
</div></body>
</html>