用Django写一段代码,在HTML页面中,粘贴一段文本,如果文本中出现“投诉”关键字,则高亮显示
时间: 2024-03-08 15:45:47 浏览: 51
可以在Django的视图函数中进行文本关键字的匹配和高亮处理,具体代码如下:
```python
from django.shortcuts import render
def highlight_complaint(request):
if request.method == 'POST':
text = request.POST.get('text', '') # 获取用户粘贴的文本
highlighted_text = text.replace('投诉', '<span style="background-color: yellow;">投诉</span>') # 高亮显示关键词
return render(request, 'highlight.html', {'highlighted_text': highlighted_text})
else:
return render(request, 'highlight.html')
```
在上述代码中,视图函数`highlight_complaint`用于处理POST请求,获取用户粘贴的文本并进行关键字匹配和高亮处理。其中,`request.POST.get('text', '')`用于获取HTML页面中名为`text`的表单元素的值,即用户粘贴的文本。`text.replace('投诉', '<span style="background-color: yellow;">投诉</span>')`用于将文本中的关键字`投诉`替换为带有黄色背景色的HTML标签,从而实现高亮显示。
在上述代码中,还需要创建一个HTML页面来显示用户粘贴的文本和高亮显示后的文本。具体代码如下:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Highlight Complaint</title>
</head>
<body>
<form method="post">
{% csrf_token %}
<textarea name="text" cols="80" rows="10"></textarea><br>
<input type="submit" value="Highlight">
</form>
{% if highlighted_text %}
<hr>
<h3>Highlighted Text</h3>
<p>{{ highlighted_text|safe }}</p><!-- 注意要使用safe过滤器,否则HTML标签会被转义 -->
{% endif %}
</body>
</html>
```
在上述HTML页面中,`<form>`元素用于让用户粘贴文本并提交表单,`{% csrf_token %}`用于防止CSRF攻击。如果视图函数返回的`highlighted_text`不为空,则在页面中显示高亮后的文本。由于高亮后的文本可能包含HTML标签,因此需要使用`safe`过滤器来告诉Django不要转义HTML标签。
阅读全文