执检程序猿 2019-04-04 09:04 采纳率: 0%
浏览 2368
已采纳

flask sqlalchemy 如何查询不特定的字段

1、问题
我想在前端传递不特定字段到后端,比如数据库中有user表有一个姓名字段和一个电话字段,我前端做一个选择下拉框,然后将姓名字段名和电话字段名放在下拉框中
下图为前端时间的代码示例

 <select name="select_sjlx" class="form-control" style="float:left;width:120px;margin-right:5px;">
                <option value="none">时间类型</option>
                    {% for k in sj %}
                        <option value={{ sj[k] }}>{{ k }}</option>
                    {% endfor %}
            </select>
            <input  name="entryDatestart" placeholder="起始日期" id="entry-date-start"
                    type="text" style="float:left;width:100px;margin-right:5px;" v-model="lookupType" class="form-control">
            <input  name="entryDatestop" placeholder="终止日期" id="entry-date-stop"
                    type="text" style="float:left;width:100px;margin-right:5px;" v-model="lookupType" class="form-control">

时间类型为选择框,加入有两个变量,我现在通过name属性将时间类型的value值传递到后端。

queryParams: function queryParams(params) {   //设置查询参数
                    var param = {
                    'pageNumber' : params.pageNumber,
                    'pageSize' : params.pageSize,
                    'select_sjlx':$("#select_sjlx").val(),
                    'entryDatestart':$("#entryDatestart").val(),
                    'entryDatestop':$("#entryDatestop").val(),
                    'select_cxkm':$("#select_cxkm").val(),
                    'lookupcontent':$("#lookupcontent").val()
                    //keyword:params.search,
                    };

后端接收数据代码如下:

    pageNumber=request.args.get('pageNumber',default=1, type=int)
    pageSize = request.args.get('pageSize', default=30, type=int)
    select_sjlx = request.args.get('select_sjlx')
    entryDatestart = request.args.get('entryDatestart')
    entryDatestop = request.args.get('entryDatestop')

查询字符串如下:

    if select_cxkm == 'ZF_id':
        rows = current_user.query.filter(User.字段名.ilike('%'+ lookupcontent +'%')).paginate(
            page=pageNumber,
            per_page=pageSize,
            error_out=False
        )

问题是:如何把查询字符串中的字段名更换为接受到的变量,变量名其实也是字段名,但是是字符串的格式。
我尝试用

b = 'id'
a= 'User.query.filter_by('+b+'=1).first()'
a
'User.query.filter_by(id=1).first()'

的方式处理,但是这个查询语句是一个字符串,怎么转换为查询语句

展开全部

  • 写回答

3条回答 默认 最新

  • 执检程序猿 2019-04-06 14:39
    关注

    已经找到大神老师解决了,唉,这个搞了我四天,但是真的很简单。直接转换字符串语句执行就行了。
    参考字符串处理函数中的一种

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 esium自定义材质拉伸问题
  • ¥15 cmake+mingw使用<mysqlx/xdevapi.h>报错
  • ¥15 eNSP中防火墙的使用
  • ¥15 不能对数据库增删改但是可以查询
  • ¥15 在触控设备上启动TabTip.exe打不开键盘界面,怎么用代码启动进程打开界面
  • ¥15 关于#mlnet#的问题:mlnet相关请求(语言-c#)
  • ¥15 lvgl7.11怎么做出文字被选中的效果
  • ¥50 如何快速查看手机目标app的主要服务器ip
  • ¥15 (标签-stm32|关键词-m3)
  • ¥15 matlab中频率调制法代码的解读
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部