通过flask实现web页面简单的增删改查

# 1.后台程序falsk_web01.py

#coding:utf-8

from flask import Flask,render_template,request,redirect
import fileutils
# 引入file_dict用户列表
fileutils.file_read() app = Flask(__name__) @app.route('/')
def index():
return render_template('login.html') @app.route('/loginaction/', methods = ["POST","GET"])
def login():
error_msg = '' if request.method == 'GET':
username = request.args.get('username')
password = request.args.get('password')
else:
username = request.form.get('username')
password = request.form.get('password') print('username:%s,password:%s' % (username,password)) if username and password:
if username == "admin" and password == "admin":
return redirect('/list')
else:
error_msg = "username or password is wrong"
else:
error_msg = 'need username and password' return render_template('login.html', error_msg = error_msg) @app.route('/list/')
def userlist():
userlist = fileutils.file_read().items()
print('userlist:%s' % userlist)
return render_template('list.html', userlist = userlist) @app.route('/update/')
def update():
username = request.args.get('username')
password = fileutils.file_read().get(username)
user = [username, password]
print('update:%s' % user)
return render_template('update.html', user = user) @app.route('/updateaction/', methods = ['POST'])
def updateaction():
params = request.args if request.method == 'GET' else request.form username = params.get('username')
password = params.get('password')
fileutils.file_dict[username] = password
fileutils.file_write()
return redirect('/list/') @app.route('/add/')
def add():
return render_template('add.html') @app.route('/addaction/', methods = ['POST'])
def addaction():
params = request.args if request.method == 'GET' else request.form
username = params.get('username')
password = params.get('password') if username in fileutils.file_dict:
return redirect('/list/')
else:
fileutils.file_dict[username] = password
fileutils.file_write()
return redirect('/list/') @app.route('/delete/')
def delete():
username = request.args.get('username')
fileutils.file_dict.pop(username)
fileutils.file_write()
return redirect('/list/') if __name__ == "__main__":
app.run(host = '0.0.0.0', debug = True) # 2.工具类fileutils.py # coding:utf-8 file_dict = {} # file => dict
def file_read(): with open('user.txt') as f:
for line in f.read().split('\n'):
if line:
tmp = line.split(':')
file_dict[tmp[0]] = tmp[1] return file_dict # ditc => file
def file_write():
file_arr = []
for user,pwd in file_dict.items():
file_arr.append('%s:%s' % (user, pwd)) print(file_arr)
with open('user.txt', 'w') as f:
f.write('\n'.join(file_arr)) if __name__ == "__main__":
print(file_read())
file_write() # 3.模板文件templates中的登陆、列表、增删改查页面 ①用户登录页面login.html <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<body>
<p style="color:red">
{{error_msg}}
</p>
<form action='/loginaction/' method="post">
username: <input type="text" name="username" />
password: <input type="text" name="password" />
<input type="submit" value="login">
</form>
</body>
</html> ②更新用户页面update.html <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<body> <form action='/updateaction/' method="post">
username:{{user[0]}} <input type="hidden" name="username" value="{{user[0]}}" />
password: <input type="text" name="password" value="{{user[1]}}" />
<input type="submit" value="update">
</form>
</body>
</html> ③添加用户页面add.html <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<body>
<form action='/addaction/' method="post">
username: <input type="text" name="username" />
password: <input type="text" name="password" />
<input type="submit" value="add">
</form>
</body>
</html> ④列表页面list.html <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<body>
<table border="" cellpadding="" cellspacing="">
<tr>
<td>user</td>
<td>pwd</td>
<td>action</td>
</tr>
{% for user in userlist %}
<tr>
<td>{{user[0]}}</td>
<td>{{user[1]}}</td>
<td>
<a href="/delete/?username={{user[0]}}">delete</a>
<a href="/update/?username={{user[0]}}">update</a>
<a href="/add/">add</a>
</td>
</tr>
{% endfor %}
</table>
</body>
</html> 4.用户信息文件 user.txt tom:123
jack:123
user2:000
user1:pwd1

通过flask实现web页面简单的增删改查的更多相关文章

  1. 通过flask实现web页面简单的增删改查bootstrap美化版

    通过flask实现web页面简单的增删改查bootstrap美化版 项目目录结构 [root@node1 python]# tree -L 2 . ├── animate.css ├── fileut ...

  2. spring boot web开发 简单的增删改查和spring boot 自带的Junit测试 案例

    创建 web项目 配置pom.xml文件   ------相当于jar包 配置application.yml -----配置文件(spring数据库连接.server服务.logging日志等) 创建 ...

  3. Java web 简单的增删改查程序(超详细)

    就是简单的对数据进行增删改查.代码如下: 1.bean层:用来封装属性及其get set方法 toString方法,有参构造方法,无参构造方法等. public class Bean { privat ...

  4. MVC3.0+knockout.js+Ajax 实现简单的增删改查

    MVC3.0+knockout.js+Ajax 实现简单的增删改查 自从到北京入职以来就再也没有接触MVC,很多都已经淡忘了,最近一直在看knockout.js 和webAPI,本来打算采用MVC+k ...

  5. SpringMVC之简单的增删改查示例(SSM整合)

    本篇文章主要介绍了SpringMVC之简单的增删改查示例(SSM整合),这个例子是基于SpringMVC+Spring+Mybatis实现的.有兴趣的可以了解一下. 虽然已经在做关于SpringMVC ...

  6. salesforce 零基础学习(五十一)使用 Salesforce.com SOAP API 实现用户登录以及简单的增删改查(JAVA访问salesforce)

    此篇请参看:https://resources.docs.salesforce.com/202/latest/en-us/sfdc/pdf/salesforce_developer_environme ...

  7. 通过JDBC进行简单的增删改查

    通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...

  8. 初试KONCKOUT+WEBAPI简单实现增删改查

    初试KONCKOUT+WEBAPI简单实现增删改查 前言 konckout.js本人也是刚刚接触,也是初学,本文的目的是使用ko和asp.net mvc4 webapi来实现一个简单增删改查操作.Kn ...

  9. BitAdminCore框架应用篇:(二)创建一个简单的增删改查模块

    NET Core应用框架之BitAdminCore框架应用篇系列 框架演示:http://bit.bitdao.cn 框架源码:https://github.com/chenyinxin/cookie ...

随机推荐

  1. git步骤

    1.New一个Repositories 2.拿到这个仓库的URL 3.git clone https://github.com/zhuobo/new.git 4.进入到clone下来的文件夹,然后gi ...

  2. 添加Glide图片加载框架依赖

    1.添加依赖implementation 'com.github.bumptech.glide:glide:4.7.1' 2.放置一个ImageView.3.加载,ivGif是ImageView实例 ...

  3. SCTP接口模型

    一.接口模型 (1)SCTP套接字分为:一到一套接字和一到多套接字: (2)一到一套接字对应一个单独的SCTP关联(一个SCTP关联是两个系统之间的一个连接,不过可能由于多宿原因而在每个断点设计不止 ...

  4. Javaweb学习笔记——(十二)——————JSP指令:page指令、include指令、taglib指令,JavaBean,内省,EL表达式

    JSP指令JSP指令分类 JSP有三大指令: *page指令 *include指令 *taglib指令 在JSP中没有任何指令是必须的. 但基本上每个JSP都是使用page指令============ ...

  5. 机器学习等知识--- map/reduce, python 读json数据。。。

    map/ reduce 了解: 简单介绍map/reduce 模式: http://www.csdn.net/article/2013-01-07/2813477-confused-about-map ...

  6. JavaScript之正则表达式[应用实例]

    1. 获取信息 "水资源利用与保护周三第9,10,11节{第1-6周}施浩然3B-302多媒体教室152座信息检索周三第9,10节{第9-12周}谭长拥4A-207多媒体160座{第12周} ...

  7. artTemplate/template.js模板将时间戳格式化为正常的日期

    1:引用<script type="text/javascript" src="../js/artTemplate/template.js">< ...

  8. easyui 进阶之tree的常见操作

    前言 easyui是一种基于jQuery的用户界面插件集合,它为创建现代化,互动,JavaScript应用程序,提供必要的功能,完美支持HTML5网页的完整框架,节省网页开发的时间和规模.非常的简单易 ...

  9. 区分defer和async

    今天要介绍的让脚本延迟加载,让脚本延迟加载的方式有多种,最简单粗暴的方法就是将 <script> 标签放在 <body> 标签的最下面,这样就可以按照先后顺序依次执行了,但是你 ...

  10. 单片机AT和STC区别

    http://www.21ic.com/jichuzhishi/datasheet/AT89C51/data/192017.html