0
点赞
收藏
分享

微信扫一扫

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


会员搜索功能和会员详情页面实现

动态读取状态

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

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

;
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 flask实战订餐系统微信小程序-37会员搜索功能和会员详情页面实现_html_02

修改后端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']))

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

Python flask实战订餐系统微信小程序-37会员搜索功能和会员详情页面实现_数据_03

使得搜索后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>


举报

相关推荐

0 条评论