django,ADMINLTE做出jquery mobile模糊查询效果
时间: 2023-07-27 19:10:44 浏览: 151
jquery模糊查询
要实现模糊查询效果,可以使用Django的ORM进行数据库查询,并结合jQuery和AdminLTE的前端框架实现模糊查询的效果。
首先,需要在Django的models.py文件中定义一个模型,该模型表示你要查询的数据表,例如:
```python
class User(models.Model):
name = models.CharField(max_length=100)
email = models.EmailField()
phone_number = models.CharField(max_length=20)
```
然后,在Django的views.py文件中,可以使用ORM进行查询,例如:
```python
from django.shortcuts import render
from .models import User
def search_users(request):
query = request.GET.get('q')
if query:
users = User.objects.filter(name__icontains=query)
else:
users = User.objects.all()
return render(request, 'search-users.html', {'users': users, 'query': query})
```
上述代码会根据传递的查询参数q,使用icontains进行模糊查询,并返回查询结果。如果没有传递查询参数,则返回所有用户。
最后,在前端页面中,可以使用jQuery和AdminLTE的前端框架实现模糊查询的效果。例如:
```html
<div class="box-body">
<div class="form-group">
<label for="search-box">Search Users:</label>
<div class="input-group">
<input type="text" class="form-control" id="search-box" placeholder="Enter search query">
<span class="input-group-btn">
<button class="btn btn-primary" type="button" id="search-btn">Search</button>
</span>
</div>
</div>
<table class="table table-striped">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Email</th>
<th>Phone Number</th>
</tr>
</thead>
<tbody id="search-results">
{% for user in users %}
<tr>
<td>{{ user.id }}</td>
<td>{{ user.name }}</td>
<td>{{ user.email }}</td>
<td>{{ user.phone_number }}</td>
</tr>
{% empty %}
<tr>
<td colspan="4">No users found.</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
<script>
$(document).ready(function() {
$('#search-btn').click(function() {
var query = $('#search-box').val();
$.ajax({
url: '/search-users/',
data: {'q': query},
success: function(data) {
$('#search-results').html(data);
}
});
});
});
</script>
```
上述代码会在页面中添加一个搜索框和一个搜索按钮,当用户输入查询关键字并点击搜索按钮时,会使用jQuery的ajax方法向服务器发送查询请求,并将查询结果显示在页面中。
阅读全文