IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python flask实战订餐系统微信小程序-37会员搜索功能和会员详情页面实现 -> 正文阅读

[Python知识库]Python flask实战订餐系统微信小程序-37会员搜索功能和会员详情页面实现

B站配套视频教程观看
会员搜索功能和会员详情页面实现

动态读取状态

Member.py后端传递状态到web端

    resp_data['list'] = list
    resp_data['pages'] = pages
    resp_data['search_con'] = req
    resp_data['status_mapping'] = app.config['STATUS_MAPPING']
    resp_data['current'] = 'index'

    return ops_render( "member/index.html", resp_data )

index.html动态读取有数据:

<div class="form-group">
    <select name="status" class="form-control inline">
        <option value="-1">请选择状态</option>
        {% for tem_key in status_mapping %}
            <option value="{{tem_key}}">{{status_mapping[tem_key]}}</option>
        {% endfor %}
    </select>
</div>

运行可以正常的读取到状态

实现搜索功能

创建member文件夹,基于account/index.js创建自己的js

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zxTkpyrT-1629548690816)(d.assets/image-20210821192146211.png)]

;
var member_index_ops = {
    init:function () {
        this.eventBind();
    },
    eventBind:function () {
        $(".wrap_search .search").click(function () {

            $(".wrap_search").submit()
        });

        var that = this;
        $(".remove").click(function () {
            that.ops("remove", $(this).attr("data"))
        });

        $(".recover").click(function () {
            that.ops("recover", $(this).attr("data"))
        });
    },
    ops:function (act, id) {
        var callback = {
            'ok':function () {
                $.ajax({
                url:common_ops.buildUrl("/account/ops"),
                type:"POST",
                data:{
                    act:act,
                    id,id
                },
                dataType:'json',
                success:function (res) {
                    var callback = null;
                    if(res.code == 200){
                        callback = function () {
                            window.location.href = window.location.href;
                        }
                    }
                    common_ops.alert(res.msg, callback);
                }
            });

            },
            'cancel':null
        };

        common_ops.confirm((act=="remove"?"确定删除?":"确定恢复?"),callback);

    }
};

$(document).ready(function () {
    member_index_ops.init()
})

将js加载到index.html中

{%block js %}
<script src="{{ buildStaticUrl('/js/member/index.js') }}"></script>
{% endblock %}

运行可以看到js被正常加载了

在这里插入图片描述

修改后端python接口获取状态:

@route_member.route( "/index" )
def index():
    resp_data = {}

    req = request.values
    page = int(req['p']) if('p' in req and req['p']) else 1

    query = Member.query

    if 'status' in req and int(req['status']) > -1:
        query = query.filter(Member.status == int(req['status']))

这时 搜索以删除状态的账号 就没有数据了

在这里插入图片描述

使得搜索后selected要搜索的状态:

                <div class="form-group">
                    <select name="status" class="form-control inline">
                        <option value="-1">请选择状态</option>
                        {% for tem_key in status_mapping %}
                            <option value="{{tem_key}}" {% if tem_key == search_con['status'] %} selected {% endif %}>{{status_mapping[tem_key]}}</option>
                        {% endfor %}
                    </select>
                </div>

根据搜索内容进行搜索:“

def index():
    resp_data = {}

    req = request.values
    page = int(req['p']) if('p' in req and req['p']) else 1

    query = Member.query

    if 'mix_kw' in req:
        query = query.filter(Member.nickname.ilike("%{0}%".format(req['mix_kw'])))

index.html展示搜索字段

value="{{search_con[‘mix_kw’]}}"

                <div class="form-group">
                    <div class="input-group">
                        <input type="text" name="mix_kw" placeholder="请输入关键字" class="form-control" value="{{search_con['mix_kw']}}">
                        <span class="input-group-btn">
                            <button type="button" class="btn  btn-primary search">

运行 就会自动根据用户名称进行搜索

传递分页数据:

<input type="hidden" name="p" value="{{search_con['p']}}">

                <div class="form-group">
                    <div class="input-group">
                        <input type="text" name="mix_kw" placeholder="请输入关键字" class="form-control" value="{{search_con['mix_kw']}}">
                        <input type="hidden" name="p" value="{{search_con['p']}}">

详情页面功能的实现

index.html传递id:

<a href="{{ buildUrl('/member/info') }}?id={{item.id}}">

            <tbody>
            {% if list %}
                {% for item in list %}
            <tr>
                <td><img alt="image" class="img-circle" src="{{item.avatar}}" style="width: 40px;height: 40px;"></td>
                <td>{{item.nickname}}</td>
                <td>{{item.sex_desc}}</td>
                <td>{{item.status_desc}}</td>
                <td>
                    <a href="{{ buildUrl('/member/info') }}?id={{item.id}}">

Member.py添加info后端接口的实现:

# -*- coding: utf-8 -*-
from flask import Blueprint,request,redirect
from common.libs.UrlManager import UrlManager
@route_member.route( "/info" )
def info():
    resp_data = {}

    req = request.args
    id = int(req.get("id", 0))
    rebackUrl = UrlManager.buildUrl("member/index")
    if id < 1:
        return redirect(rebackUrl)

    info = Member.query.filter_by(id = id).first
    if not info:
        return redirect(rebackUrl)

    resp_data['info'] = info
    resp_data['current'] = 'index'

    return ops_render( "member/info.html" ,resp_data)

模板页面info.html动态数据的响应

<div class="row m-t">
    <div class="col-lg-12">
        <div class="row">
            <div class="col-lg-12">
                <div class="m-b-md">
                    <a class="btn btn-outline btn-primary pull-right" href="{{ buildUrl('/member/set') }}?id={{info.id}}">
                        <i class="fa fa-pencil"></i>编辑
                    </a>
                    <h2>会员信息</h2>
                </div>
            </div>
        </div>
        <div class="row">
            <div class="col-lg-2 text-center">
                <img class="img-circle circle-border" src="{{ info.avatar }}"
                     width="100px" height="100px">
            </div>
            <div class="col-lg-10">
                <p class="m-t">姓名:{{ info.nickname }}</p>
                <p>性别:{{ info.sex_desc }}</p>
            </div>
        </div>
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-23 16:38:21  更:2021-08-23 16:38:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 10:33:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码