python 模糊查询列表_python Django中models进行模糊查询的示例

多个字段模糊查询, 括号中的下划线是双下划线,双下划线前是字段名,双下划线后可以是icontains或contains,区别是是否大小写敏感,竖线是或的意思

#搜索功能

@csrf_exempt#使用@csrf_exempt装饰器,免除csrf验证

def search_testCaseApi(request):

if request.method == 'POST':

name = request.POST.get('task_name')

updateUser=request.POST.get('task_updateUser')

if name=="" and updateUser=="":

obj_all = tnw_test_case_api.objects.filter(del_flag=0)

elif name!="" and updateUser=="":

obj_all = tnw_test_case_api.objects.filter(del_flag=0,case_name__contains=name)

elif name=="" and updateUser!="":

obj_all = tnw_test_case_api.objects.filter(del_flag=0,update_user__contains=updateUser)

else:

obj_all = tnw_test_case_api.objects.filter(del_flag=0,case_name__contains=name,update_user__contains=updateUser)

ApiCasesList = []

for li in obj_all:

need_interfacename = allFunction().get_interfaceName(li.id)

api_list, api_sum = allFunction().testIDConnect_needid(li.id)

if li.case_module is not None:

ApiCasesList.append({

"testCaseApi_id": li.id,

"testCaseApi_name": li.case_name,

"testCaseApi_sum": api_sum,

"testCaseApi_version": li.case_version,

"testCaseApi_module": li.case_module,

"testCaseApi_need_interfacename": need_interfacename,

"testCaseApi_createTime": str(li.create_time),

"testCaseApi_updateTime": str(li.update_time),

"testCaseApi_updateUser": li.update_user,

})

else:

ApiCasesList.append({

"testCaseApi_id": li.id,

"testCaseApi_name": li.case_name,

"testCaseApi_sum": 1,

"testCaseApi_version": li.case_version,

"testCaseApi_module": li.case_module,

"testCaseApi_need_interfacename": need_interfacename,

"testCaseApi_createTime": str(li.create_time),

"testCaseApi_updateTime": str(li.update_time),

"testCaseApi_updateUser": li.update_user,

})

# 将int类型使用dumps()方法转为str类型

ApiCasesList_len = json.dumps(len(ApiCasesList))

# 构造一个字典

json_data_list = {'rows': ApiCasesList, 'total': ApiCasesList_len}

# dumps()将字典转变为json形式,

easyList = json.dumps(json_data_list)

# 将json返回去,json的键值对中的键需要与前台的表格field=“X”中的X名称保持一致)

return HttpResponse(easyList)

以上这篇python Django中models进行模糊查询的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个基于Python+Django+MySQL实现的Web数据库系统的示例代码: 1. 首先,需要安装Django和MySQL依赖库。可以通过以下命令进行安装: ``` pip install Django pip install mysqlclient ``` 2. 创建Django项目和应用,可以通过以下命令进行创建: ``` django-admin startproject myproject cd myproject python manage.py startapp myapp ``` 3. 在Django项目的settings.py,配置MySQL数据库连接信息: ``` DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'mydatabase', 'USER': 'mydatabaseuser', 'PASSWORD': 'mypassword', 'HOST': 'localhost', 'PORT': '3306', } } ``` 4. 在Django应用的models.py,定义数据库模型: ``` from django.db import models class User(models.Model): name = models.CharField(max_length=50) email = models.EmailField() age = models.IntegerField() def __str__(self): return self.name ``` 5. 进行数据库迁移,创建User表: ``` python manage.py makemigrations python manage.py migrate ``` 6. 在Django应用的views.py,编写增删改查的视图函数: ``` from django.shortcuts import render, get_object_or_404, redirect from .models import User from .forms import UserForm def user_list(request): users = User.objects.all() return render(request, 'user_list.html', {'users': users}) def user_detail(request, pk): user = get_object_or_404(User, pk=pk) return render(request, 'user_detail.html', {'user': user}) def user_new(request): if request.method == "POST": form = UserForm(request.POST) if form.is_valid(): user = form.save(commit=False) user.save() return redirect('user_detail', pk=user.pk) else: form = UserForm() return render(request, 'user_edit.html', {'form': form}) def user_edit(request, pk): user = get_object_or_404(User, pk=pk) if request.method == "POST": form = UserForm(request.POST, instance=user) if form.is_valid(): user = form.save(commit=False) user.save() return redirect('user_detail', pk=user.pk) else: form = UserForm(instance=user) return render(request, 'user_edit.html', {'form': form}) def user_delete(request, pk): user = get_object_or_404(User, pk=pk) user.delete() return redirect('user_list') ``` 7. 在Django应用的urls.py,配置URL路由: ``` from django.urls import path from . import views urlpatterns = [ path('', views.user_list, name='user_list'), path('user/<int:pk>/', views.user_detail, name='user_detail'), path('user/new/', views.user_new, name='user_new'), path('user/<int:pk>/edit/', views.user_edit, name='user_edit'), path('user/<int:pk>/delete/', views.user_delete, name='user_delete'), ] ``` 8. 在Django应用的templates目录下,编写HTML模板文件: user_list.html: ``` {% extends "base.html" %} {% block content %} <h1>Users</h1> <table> <tr> <th>Name</th> <th>Email</th> <th>Age</th> <th>Actions</th> </tr> {% for user in users %} <tr> <td>{{ user.name }}</td> <td>{{ user.email }}</td> <td>{{ user.age }}</td> <td> <a href="{% url 'user_detail' pk=user.pk %}">View</a> <a href="{% url 'user_edit' pk=user.pk %}">Edit</a> <a href="{% url 'user_delete' pk=user.pk %}">Delete</a> </td> </tr> {% endfor %} </table> <a href="{% url 'user_new' %}">Add User</a> {% endblock %} ``` user_detail.html: ``` {% extends "base.html" %} {% block content %} <h1>{{ user.name }}</h1> <p>Email: {{ user.email }}</p> <p>Age: {{ user.age }}</p> <a href="{% url 'user_edit' pk=user.pk %}">Edit</a> <a href="{% url 'user_delete' pk=user.pk %}">Delete</a> {% endblock %} ``` user_edit.html: ``` {% extends "base.html" %} {% block content %} <h1>{{ title }}</h1> <form method="post"> {% csrf_token %} {{ form.as_p }} <button type="submit">Save</button> </form> {% endblock %} ``` base.html: ``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>{% block title %}{% endblock %}</title> </head> <body> <div> <h1><a href="{% url 'user_list' %}">My Project</a></h1> </div> <div> {% block content %}{% endblock %} </div> </body> </html> ``` 9. 在Django应用的forms.py,定义表单类: ``` from django import forms from .models import User class UserForm(forms.ModelForm): class Meta: model = User fields = ('name', 'email', 'age',) ``` 10. 运行Django开发服务器,查看效果: ``` python manage.py runserver ``` 以上就是一个基于Python+Django+MySQL实现的Web数据库系统的示例代码。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值