请帮我列举出icontains和contains在Django查询中的区别，并举例说明。注意输出为markdown格式，包含一个表格对比icontains和contains，同时给一个具体的例子。
user
suç 

| 区别点 | contains | icontains |
| --- | --- | --- |
| 区分大小写 | 是 | 否 |
| 作用 | 根据指定文本进行精确匹配（区分大小写）的部分查询 | 根据指定文本进行不区分大小写的部分查询 |
| 用法示例 | `Model.objects.filter(name__contains='Test')` | `Model.objects.filter(name__icontains='Test')` |

**例子**：

假设有一个名为 `User` 的Django模型，具有一个名为 `username` 的字段。如果我们要查找用户名中包含 "john" 的用户，并且不区分大小写，可以使用 `icontains`。查询语句如下：

```python
# 不区分大小写
users = User.objects.filter(username__icontains='john')
```

如果严格区分大小写进行查询，应使用 `contains`：

```python
# 区分大小写
users = User.objects.filter(username__contains='John')
```

在这个例子中，`contains` 只会返回那些 `username` 字段中恰好包含 "John" 的用户，而 `icontains` 会返回包含 "john"、"JOHN"、"John"、"JOHn" 等等的所有用户。
assistant