django实现网页用户留言板
时间: 2023-12-31 16:06:45 浏览: 80
1. 创建Django项目
首先,在命令行中使用以下命令创建Django项目:
```
django-admin startproject message_board
```
2. 创建一个Django应用程序
使用以下命令在Django项目中创建一个名为“messages”的应用程序:
```
python manage.py startapp messages
```
3. 数据库设置
在message_board/settings.py文件中,将数据库设置为以下内容:
```
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
```
4. 创建留言模型
在messages/models.py文件中,创建一个名为Message的模型,包含以下字段:
- id:自动生成的主键
- name:留言者的姓名
- email:留言者的电子邮件地址
- message:留言内容
- created_at:留言创建时间
```
from django.db import models
class Message(models.Model):
name = models.CharField(max_length=50)
email = models.EmailField()
message = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
```
5. 迁移数据库
使用以下命令在数据库中创建Message模型的表:
```
python manage.py makemigrations messages
python manage.py migrate
```
6. 创建视图
在messages/views.py文件中,创建一个名为“message_list”的视图,该视图获取所有留言并将它们传递给名为“messages.html”的模板:
```
from django.shortcuts import render
from .models import Message
def message_list(request):
messages = Message.objects.all().order_by('-created_at')
return render(request, 'messages.html', {'messages': messages})
```
7. 创建模板
在message_board/templates目录下创建一个名为“messages.html”的模板文件,包含以下内容:
```
{% extends 'base.html' %}
{% block content %}
<h1>留言板</h1>
<ul>
{% for message in messages %}
<li>
<strong>{{ message.name }}</strong> ({{ message.email }})<br>
{{ message.message }}<br>
{{ message.created_at }}
</li>
{% empty %}
<li>没有留言。</li>
{% endfor %}
</ul>
{% endblock %}
```
8. 创建表单
在messages/forms.py文件中,创建一个名为MessageForm的表单,包含以下字段:
- name:留言者的姓名
- email:留言者的电子邮件地址
- message:留言内容
```
from django import forms
class MessageForm(forms.Form):
name = forms.CharField(max_length=50)
email = forms.EmailField()
message = forms.CharField(widget=forms.Textarea)
```
9. 创建视图
在messages/views.py文件中,创建一个名为“message_new”的视图,该视图使用MessageForm表单创建一个新的留言,并将用户重定向到留言板页面:
```
from django.shortcuts import render, redirect
from .models import Message
from .forms import MessageForm
def message_new(request):
if request.method == 'POST':
form = MessageForm(request.POST)
if form.is_valid():
name = form.cleaned_data['name']
email = form.cleaned_data['email']
message = form.cleaned_data['message']
Message.objects.create(name=name, email=email, message=message)
return redirect('message_list')
else:
form = MessageForm()
return render(request, 'message_new.html', {'form': form})
```
10. 创建模板
在message_board/templates目录下创建一个名为“message_new.html”的模板文件,包含以下内容:
```
{% extends 'base.html' %}
{% block content %}
<h1>留言板</h1>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">提交</button>
</form>
{% endblock %}
```
11. 创建URL
在message_board/urls.py文件中,创建以下URL模式:
- message_list:显示所有留言
- message_new:创建新留言
```
from django.urls import path
from messages.views import message_list, message_new
urlpatterns = [
path('', message_list, name='message_list'),
path('new/', message_new, name='message_new'),
]
```
12. 运行Django服务器
使用以下命令在本地主机上运行Django开发服务器:
```
python manage.py runserver
```
现在,您可以在浏览器中访问http://127.0.0.1:8000/查看留言板并添加新的留言。
阅读全文