前言
本章主要讲述 【留言】界面及 【留言】功能的实现
- ps:功能这块的话,和之前【文章详情评论】代码差不多,都比较简单,页面这part我觉得算是符合我的审美了,毕竟咱也不是前端 0.0
环境:
- Pycharm
- python3.6
- mysql 5.7
- django 2.0.13
一、新功能项目概览
二、User模块具体实现
- 留言代码部分我统一写在【user】应用下
1、urls.py
- 添加两路由,一个是【查询留言列表】,另一个是【添加留言】
# 留言列表
path('leave_message', leave_message, name='leave_message'),
# 添加留言
path('add_leave_msg', add_leave_msg, name='add_leave_msg'),
2、views.py
- 对应添加两视图函数
def leave_message(request):
"""
返回留言界面
:param request:
:return:
"""
# 查询所有留言
leave_msgs = LeaveMessage.objects.all().order_by('-create_time')
return render(request, 'user/leave_message.html', context={
'leave_msgs': leave_msgs})
def add_leave_msg(request):
"""
添加留言
:param request:
:return:
"""
# 拿到前端传的值
nickname = request.GET.get('nickname')
content = request.GET.get('saytext')
# 昵称和内容都不为空时,保存数据库
data = {
}
if nickname is not None and content is not None:
leave_msg = LeaveMessage.objects.create(nickname=nickname, content=content)
if leave_msg:
data = {
'status': 1,
'msg': '留言成功'
}
else:
data = {
'status': 0,
'msg': '留言成功'
}
else:
logging.info("添加留言失败,请填写昵称和留言内容再添加噢!")
return JsonResponse(data)
3、models.py
- 新增留言模型,数据库怎么设计你们可以自己优化,我这里直接引用之前的评论表了
class LeaveMessage(models.Model):
"""
留言表
"""
# 要添加null=True,不添加的话进行迁移数据库的时候会提示给默认值
nickname = models.CharField(verbose_name='昵称', max_length=16, null=True)
content = models.CharField(verbose_name='留言内容', max_length=240, null=True)
create_time = models.DateTimeField(verbose_name='留言时间', auto_now=True)
def __str__(self):
return self.nickname
class Meta:
db_table = 'leave_message'
verbose_name = "留言"
verbose_name_plural = verbose_name
4、迁移数据库
- 只要models进行了修改,就要记得迁移
python manage.py makemigrations
python manage.py migrate
三、templates模块具体实现
1、在user下新增leave_message.html
{
% extends 'base.html' %}
{
% load staticfiles %}
{
# title部分 #}
{
% block title %}
Mikasa个人博客 - 一个热爱敲代码的女程序媛的个人博客网站
{
% endblock %}
{
# css样式部分 #}
{
% block mycss %}
<link href="{% static 'css/book.css' %}" rel="stylesheet">
<link href="{% static 'css/leavemsg.css' %}" rel="stylesheet">
{
% endblock %}
{
# 内容部分 #}
{
% block content %}
<div class="container">
<h2 class="ctitle"><b>留言板</b> <span>你,生命中最重要的过客,之所以是过客,因为你未曾为我停留。</span></h2>
{
# 留言板 #}
<div class="gbook">
<div class="about">
{