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

通过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="1" cellpadding="0" cellspacing="0">
    <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

原文地址:https://www.cnblogs.com/reblue520/p/8467605.html

时间: 2024-10-10 20:20:38

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

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

创建 web项目 配置pom.xml文件   ------相当于jar包 配置application.yml -----配置文件(spring数据库连接.server服务.logging日志等) 创建 package  (entity.controller.service.configuration.repository.interceptor等) 小例子: entity:Person 数据持久化(dao): controller: spring 自带Junit测试@SpringBootTest

MyBatis3.2.2+SpringMVC3.0 简单实现(增删改查,Web版实现)

MyBatis3.2.2+SpringMVC3.0 简单实现(增删改查,Web版实现) 首先,需要知道Eclipse如何创建Dynamic Web Project for Maven,我们首先需要知道如何用Eclipse创建动态部署的Maven Web-app 项目.参考以下链接的博客:http://blog.csdn.net/smilevt/article/details/8215558. 构建完之后:实现具体的增删改查,不去部署Web war的时候我们用Junit单元测试CRUD功能.代码如

EF5(6) 简单三层 增删改查

1:项目结构 2:每层添加对其他层的引用,这里我们把除了Web层之外的所有的层生成的文件都放到解决方案下的Library文件夹下,然后每个项目分别来引用里面的dll项目文件. 我们在Model项目上,右键属性->生成-> 在下面的输出里面,选择上一级的 Library文件夹 2.2 我们调整项目的生成顺序 ,在解决方案或者是任意项目上右键,选择 生成依赖项,调整各个项目的依赖,这样的目的就是调整项目的生成顺序. 注意,这里你选择依赖项,并没有给项目与项目之间增加了dll的引用,只是单纯的修改了

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

通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操作 (1)定义记录的类(可选) (2)连接的获取 (3)insert (4)update (5)select (6)delete 四.测试 五.代码分析 六.思考问题 前言:什么是JDBC 维基百科的简介: Java 数据库连接,(Java Database Connectivity,简称JDBC)

myeclipse中JDBC连接mysql和简单的增删改查

废话不多说,直接上操作图,操作起来理解会更彻底 1.myeclipse中项目结构,先在web-inf-lib下导入jar包,注意Web App Libraries这个目录,下面会有用到的地方 2.连接语句 package utils; import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql

使用JDBC分别利用Statement和PreparedStatement来对MySQL数据库进行简单的增删改查以及SQL注入的原理

一.MySQL数据库的下载及安装 https://www.mysql.com/ 点击DOWNLOADS,拉到页面底部,找到MySQL Community(GPL)Downloads,点击 选择下图中的MySQL Community Server 选择想要的版本进行下载 之后的步骤,因为本人已经安装过MySQL数据库,而卸载重装会比较麻烦,卸载不干净会导致新的装不上,所以可以参考下面的博客,因为官网的改动,前面的部分已经与该博客不符,按照本人在上面的介绍寻找即可 https://blog.csdn

Mybatis使用之简单的增删改查

Mybatis使用之简单的增删改查 一:简介 主要记录最简单的数据的增删改查.下一章会有各个操作详细一点的配置说明.以Author表为例(见上一博客).Author表没有关联任何其他表.也没有特殊字段. 二:映射规则 2.1.映射文件中的sql方法与对应的XxxMapper接口中的方法映射规则: a)映射文件的namespace的值是XxxMapper接口的全限定名.即包名+接口名称 b)映射文件中表示增删改查的标签(select.insert.delete.update)的id的值是接口中方法

用CI框架向数据库中实现简单的增删改查

以下代码基于CodeIgniter_2.1.3版 用PHP向数据库中实现简单的增删改查(纯代码)请戳 http://www.cnblogs.com/corvoh/p/4641476.html CodeIgniter_2.1.3与PHP5.6的兼容问题请戳 http://www.cnblogs.com/corvoh/p/4649357.html 增: //insert//语法:$bool=$this->db->insert('表名',关联数组); $data=array( 'username'=

用PHP向数据库中实现简单的增删改查(纯代码,待完善)

<?php $con = mysql_connect("localhost:3306","root",""); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("test", $con); $result = mysql_query("SELECT * FROM user"); echo "