在jango框架下用bootstrap建,为我的降压药网站的导航栏“联系我们”这个菜单写一个留言板,并在该页面下方显示在jango框架下用bootstrap建了个网站,为他的导航栏“联系我们”这个菜单写一个留言板内容,并在该页面下方显示
时间: 2024-05-06 18:18:50 浏览: 177
首先,需要在 Django 中创建一个留言板应用。可以通过以下命令创建:
```
python manage.py startapp message_board
```
接着,在 message_board 应用中创建一个名为 `models.py` 的文件,并在其中定义一个 `Message` 模型,如下所示:
```python
from django.db import models
class Message(models.Model):
name = models.CharField(max_length=100)
email = models.EmailField()
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.name
```
然后,在 message_board 应用中创建一个名为 `forms.py` 的文件,并定义一个 `MessageForm` 表单,如下所示:
```python
from django import forms
from .models import Message
class MessageForm(forms.ModelForm):
class Meta:
model = Message
fields = ['name', 'email', 'content']
```
接下来,在 message_board 应用中创建一个名为 `views.py` 的文件,并定义一个 `message_board` 视图,如下所示:
```python
from django.shortcuts import render, redirect
from .forms import MessageForm
def message_board(request):
if request.method == 'POST':
form = MessageForm(request.POST)
if form.is_valid():
form.save()
return redirect('message_board')
else:
form = MessageForm()
messages = Message.objects.all().order_by('-created_at')
return render(request, 'message_board.html', {'form': form, 'messages': messages})
```
在这个视图中,我们使用了 `MessageForm` 表单,如果请求方法是 POST,则保存表单并重定向到留言板页面;否则,直接渲染留言板页面,并传递表单和所有留言的列表。
接下来,在 `urls.py` 文件中引入 `message_board` 视图,并将其与 `/message_board/` 路径匹配:
```python
from django.urls import path
from .views import message_board
urlpatterns = [
path('message_board/', message_board, name='message_board'),
]
```
最后,在导航栏中添加一个链接到 `/message_board/` 路径,并在 `message_board.html` 文件中使用 Bootstrap 样式创建表单和留言列表,如下所示:
```html
<!-- 导航栏中的链接 -->
<li class="nav-item">
<a class="nav-link" href="{% url 'message_board' %}">联系我们</a>
</li>
<!-- message_board.html 文件内容 -->
{% extends 'base.html' %}
{% block content %}
<h1 class="mb-4">留言板</h1>
<!-- 留言表单 -->
<form method="POST">
{% csrf_token %}
{{ form.as_p }}
<button type="submit" class="btn btn-primary">提交留言</button>
</form>
<hr>
<!-- 留言列表 -->
{% for message in messages %}
<div class="card my-4">
<div class="card-body">
<h5 class="card-title">{{ message.name }}</h5>
<h6 class="card-subtitle mb-2 text-muted">{{ message.created_at }}</h6>
<p class="card-text">{{ message.content }}</p>
</div>
</div>
{% empty %}
<p>目前还没有留言。</p>
{% endfor %}
{% endblock %}
```
阅读全文