【Django】第二课 银行账户管理系统开发

概念

本文在上一篇文章基础之前进行构建和完善

账户信息的分页显示

用户通过点击首页的“查询账户”,进入账户信息查询页面

【Django】第二课 银行账户管理系统开发_第1张图片

则点击该按钮触发点击事件,向django服务器发出请求

【Django】第二课 银行账户管理系统开发_第2张图片 

接着我们在urls.py中需要定义与该地址进行匹配的地址,并匹配后跳转至views.py文件中执行对应该功能的方法

 

 views.py

# 创建方法,用于从数据库中查询出所有的账户信息
# 将所有信息发送给展示列表信息的页面
def getAccountList(request):
    #当前要显示第几页的数据,由用户决定
    #获得用户使用get请求发送过来的页码参数
    # 对获得页码参数的代码进行捕获异常
    try:
        ym = request.GET["ym"]
    except:
        # 只要以上代码报错,那么就会执行这里面的代码
        # 上面的代码报错的原因是因为没有获得ym这个参数
        # ym默认设置为1
        ym=1
    # 查询Account表中所有数据,将数据转换成字典的格式
    accounts=Account.objects.all().values()
    # [
    # {'id': 1, 'password': '666666',
    # 'name': '马云', 'personId': '360105197204171611',
    # 'blance': 2000.12, 'openDate': '2022-10-20'},
    # {'id': 2, 'password': '888888',
    # 'name': '雷军', 'personId': '360105197807181615',
    # 'blance': 61235.78, 'openDate': '2021-12-10'},
    # {'id': 3, 'password': '999999',
    # 'name': '马斯克', 'personId': '360105198010181604',
    # 'blance': 548976.11, 'openDate': '2018-1-16'}
    # ]
    # 创建分页器对象,
    # 第一个参数表示从数据库中查询出来的总数据
    # 第二个参数表示设置每页显示多少条数据
    p=Paginator(accounts,10)
    # 从分页器中根据当前页码来获得当前页的对象
    page=p.get_page(ym)
    #从当前页对象中获得出数据列表
    accounts=page.object_list
    # 获得所有分页的总页数的迭代器
    yms=p.page_range
    return render(request,"accountList.html",{"accounts":accounts,"page":page,"yms":yms})

根据该代码,可理解,通过浏览器给定页码,进行获取对应的页码的列表数据发送给浏览器上进行展示,如果浏览器未指定页码,则服务器默认获取第一页的数据发送给浏览器,因此我们需要创建展示列表信息的html页面,其代码如下




    
    账户信息列表页面
    
    


    

账户信息列表

{% for account in accounts %} {% endfor %}
全选反选 账号 密码 姓名 身份证号 余额 开户日期 操作
{{ account.id }} {{ account.password }} {{ account.name }} {{ account.personId }} {{ account.blance }} {{ account.openDate }}

最终通过点击查询账户按钮,可查看到以下效果:

【Django】第二课 银行账户管理系统开发_第3张图片

该页面的分页效果类似于百度网站的分页效果,这里供读者进行学习和参考,如果读者有更好的效果,可在本代码基础上进行完善。

批量删除以及全选和反选删除功能

在该列表展示页面中,我们也需要完成对于数据的批量删除功能,在前端页面上完成全选和反选供的代码是通过javascript的方式实现的,读者可通过学习html代码中的功能,结合运行的效果进行学习和理解。

当用户勾选在需要删除的账户信息后,点击删除后的同时,我们这里将选中的账户信息的主键id拼接成字符串以逗号隔开的方式作为参数使用get请求发送给服务器

我们在服务器中urls.py文件中定义接收的地址

 

views.py文件中进行数据解析和分解,完成删除

# 创建方法,接收页面上用户想要删除的数据对应的账号
def deletes(request):
    # 1,3,5,7,9,
    ids=request.GET["ids"]
    # 将字符串按逗号进行分割
    list1=str(ids).split(",")
    for id in list1:
        # 判断每一次循环的数据是否是数字
        if id.isdigit():
            # 将该id作为条件删除数据库的数据
            ac=Account.objects.get(id=id)
            ac.delete()
    return redirect(getAccountList)

 从数据库中删除完成后,我们需要立即刷新列表,进行数据库和浏览器页面的同步显示

你可能感兴趣的:(Django服务器开发,django,python,后端)