Python学习笔记:6.2.3 增删改查CURD

前言:本文是学习网易微专业的《python全栈工程师 - Flask高级建站》课程的笔记,欢迎学习交流。同时感谢老师们的精彩传授!

一、课程目标
  • 用户列表
  • 用户信息删除与修改
  • 用户条件查询
  • 页面跳转
二、详情解读
2.1.C - create创建
2.1.1.数据创建
user = User(field1 = value1, field2 = value2, ...)
db.session.add(user)
db.session.commit()

注:要提高程序的性能,应该减少跟数据库打交道的次数

批量生成100个用户:

# 批量创建用户
def createBatchUsers():
    words = list("abcdefghijklmnopqrstuvwxyz")
    citys = ["010", "021", "0512"]
    mylikes = ["睡觉", "旅游", "看书", "唱歌"]
    import random

    for i in range(100):
        random.shuffle(words)
        username = "".join(words[:6])
        sex = random.randint(0, 1)
        city = citys[random.randint(0, 2)]
        random.shuffle(mylikes)
        mylike = "|".join(mylikes[:random.randint(0, 3)])
        user = User(
            realname = "-",
            username = username,
            password = "",
            sex = sex,
            mylike = mylike,
            city = city,
            intro = ""
        )
        db.session.add(user)
    db.session.commit()

上节课创建的用户数据模型:

# 创建用户数据模型
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String)
    password = db.Column(db.String)
    realname = db.Column(db.String)
    sex = db.Column(db.Integer)
    mylike = db.Column(db.String)
    city = db.Column(db.String)
    intro = db.Column(db.String)

实操步骤:
Step1.在虚拟环境中运行下面命令进行shell环境:

flask shell

Step2.在shell环境中导入createBatchUsers并运行:

>>> from app import createBatchUsers
>>> createBatchUsers()

在这里插入图片描述
Step3.新开一个命令行窗口,在虚拟环境中运行下面命令,打开sqlite数据库的web界面:

sqlite_web my.db

在这里插入图片描述
通过打开的网页窗口,我们可以看到新增虚拟用户(我这里是运行了两次,加注册了一个,所以一共是201个数据)
在这里插入图片描述

2.2.R - read读取数据记录
2.2.1.读取操作

查询通过模型类的query对象方法:Model.query.<查询方法>

查询方法 说明
all() 获得所有记录
first() 获得第一条记录,找不到返回None
one() 返回唯一 一 条记录,如果存在多条或者没有则报错
get(id) 传入主键id,返回与主键值匹配的记录,无匹配返回None
count() 返回查询结果总数
one_or_none 与one()一样,如果结果不唯一,返回None
2.2.2.模版与视图准备

模版:需要提供一个用户列表显示模版
路由:提供一个访问路径。比如:@app.route("/userlist")
视图函数:通过模型对象查询结果,并将结果赋给模版变量

新建文件:templates/user/edit_user.htmltemplates/user/user_list.html

user_list.html内容如下:

{% extends "base.html" %}
{% block style %}
        input[type='number']{
            width: 100px;
        }
        .btn{
            margin-right: 30px;
        }
{% endblock %}
{% block content %}
		<div class="container-fluid">
			<div class="row">
				<div class="col-md-2 hidden-xs hidden-sm">
					<ul class="nav nav-pills  " id="left_menu">
						<li class="active"><a href="">标准模块</a></li>
						<li ><a href="#" data-toggle="dropdown">socket编程</a></li>
						<li><a href="">异步编程</a></li>
						<li><a href="">并发编程</a></li>
					</ul>
				</div>
				<div class="col-md-6">
					<!-- 媒体列表 -->
                    <h3>用户管理</h3>
                    <div class="panel">
                        <form action=""  method="post" class="form-horizontal" >
                            <div class="form-group">
                                
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值