一:main.py

# -*- coding: utf-8 -*-
# @Author : Felix Wang
# @time : 2018/7/3 22:58 from flask import Flask, render_template, request, redirect, session, url_for app = Flask(__name__)
app.debug = True # 自动重启
USERS = {
1: {'name': '大白', 'age': '', 'gender': '男', 'text': '非常可爱'},
2: {'name': '小白', 'age': '', 'gender': '男', 'text': '非常暖'},
3: {'name': '张三', 'age': '', 'gender': '女', 'text': '天下第一美'},
4: {'name': '王五', 'age': '', 'gender': '女', 'text': '帝国理工宅女'}, } @app.route('/detail/<int:nid>', methods=['GET']) # 动态url传入一个值
def detail(nid):
user = session.get('user_info')
if not user:
url = url_for('l1') # 根据别名生成url
return redirect(url)
info = USERS[nid]
return render_template('detail.html', info=info) # html 文件放在templates文件夹 @app.route('/login', methods=['GET', 'POST'], endpoint='l1') # endpoint 表示别名
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['user_info'] = user
return redirect('http://www.baidu.com') # 跳转
return render_template('login.html', error='用户名或密码错误') # error对应着前面的模板语言error @app.route('/index', methods=['GET'])
def index():
user = session.get('user_info')
if not user:
return redirect('/login') # 跳转到登录页
return render_template('index.html', user_dict=USERS) if __name__ == '__main__':
app.run()

二: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" value="登录">{{error}} </form>
</body>
</html>

三:index.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}}</td>
<td>{{v['name']}}</td>
<td>{{v.get('name')}}</td>
<td><a href="/detail/{{k}}">查看详情</a></td>
</tr>
<!--结束循环-->
{% endfor %}
</table>
</body>
</html>

四:detail.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>详情信息:{{info.name}}</h1>
<div>
{{info.text}}
</div>
</body>
</html>

最新文章

  1. echarts+php+mysql 绘图实例
  2. ASP.NET Identity入门系列教程(一) 初识Identity
  3. js中JSON格式数据的转化
  4. 解决:Win 10安装软件时提示:文件系统错误 (-1073740940)
  5. 基于Hadoop 2.6.0运行数字排序的计算
  6. declare 关键字在Oracle中的应用。
  7. SmartGit STUDY
  8. mysql之union
  9. PHP连续签到
  10. python高级编程之描述符与属性02
  11. [刷题]算法竞赛入门经典(第2版) 4-9/UVa1591 - Data Mining
  12. NOIP2016提高组初赛(C++语言)试题 个人的胡乱分析 Part 3.
  13. python 下载新的模块
  14. [zt]C++二维数组讲解、二维数组的声明和初始化
  15. 洗礼灵魂,修炼python(88)-- 知识拾遗篇 —— 线程(2)/多线程爬虫
  16. tesseract-ocr安装问题
  17. Linux运维故障排查思路
  18. Cisco常用配置和命令
  19. Java泛型深入理解(转载)
  20. null的数据类型

热门文章

  1. Java8排序
  2. 进阶Java编程(5)基础类库
  3. C语言中signed和unsigned理解
  4. vue和react区别
  5. wcf可以返回的类型有哪些
  6. 【原创】大叔经验分享(62)kudu副本数量
  7. extjs CheckboxGroup
  8. [转载]深入理解maven构建生命周期和各种plugin插件
  9. es6的学习
  10. go语言入门(2)数据类型