基于Django+MySQL的B/S模式云端留言系统之留言提交与查看

基于Django+MySQL的B/S模式云端留言系统之留言提交与查看


本文是上一篇博文的后续部分,上一篇博文已经实现了: 基于Django+MySQL的B/S模式云端留言系统之登录页面
本文将在此基础上实现用户在页面登陆成功后的留言提交与查看。为了方便读者阅读方便,以下对上一博文中已经实现的内容进行简单的概括:

  1. 安装MySQL:首先,请确保已在与ubuntu可连接的机子上安装并配置好MySQL数据库。

  2. 在ubuntu环境中使用Django框架的创建好相关项目

  3. 进入项目目录:使用以下命令进入项目目录:

  4. 在项目中创建Django应用程序 app(业务app创建成功后自动生成views .py,models.py等文件)

  5. 配置数据库:打开项目目录下的settings.py文件,在DATABASES部分,配置MySQL数据库连接信息

  6. 创建留言模型:在业务app应用程序的models.py文件中定义一个留言模型(数据库存放的表)。例如:

    from django.db import models
    
    class Message(models.Model):   #*注意列定义之间 没有逗号*
         user = models.CharField(max_length=255)  # 添加了 max_length 参数
        content = models.TextField()
        created_at = models.DateTimeField(auto_now_add=True)
    ```
    
    
  7. 迁移数据库:运行以下命令以创建数据库表:

    python manage.py makemigrations
    python manage.py migrate
    ```
    
    
  8. 创建视图函数:在业务应用程序的views.py文件中编写业务视图函数,用于处理留言的提交和查看。例如:

    from django.shortcuts import render, redirect
    from .models import Message
    
    def submit_message(request):
        if request.method == 'POST':
            content1= request.POST.get('c')  # 与下文submit_message.html代码中 name=“c”对应
            user_name1=request.POST.get('u')#与下文submit_message.html代码中 name=“u”对应
            
            message = Message(content=content1,user=user_name1)  #往数据模型中写入数据,时间可以系统自动获取
            message.save()  #数据保存
            return redirect('view_messages')
        return render(request, 'submit_message.html')
    
    def view_messages(request): #留言查看
        messages = Message.objects.all()# 查看所有留言
        user_name1=request.POST.get('u')
        messages = Message.objects.filter(user=user_name1) #条件查询,与上面一行的全查询可以2选1
        return render(request, 'view_messages.html', {'messages': messages})  #此处的messages与view_messages.py 中的messages保持一致
    ```
    
    
  9. 创建模板文件:在业务应用程序的templates目录中创建submit_message.htmlview_messages.html模板文件,用于呈现留言提交和查看的页面。
    submit_message.htmlview_messages.html的参考:

submit_message.html:

<!DOCTYPE html>
<html>
<head>
    <title>Submit Message</title>
</head>
<body>
    <h1>Submit Message</h1>
    <form method="post" action="{% url 'submit_message' %}"> #这个submit_message是与下文中(11.URL配置路由)urls.py代码中定义的path对应的name属性值
        {% csrf_token %} #安全检查
        <textarea name="c" rows="4" cols="50"></textarea><br><br>
        <input type="text" id="txtPassword" name="u">
        <input type="submit" value="Submit">
    </form>
</body>
</html>

注意:以上HTML中textarea 是 HTML 的一个标签,用于创建多行文本输入框。即用户可以输入多行文本内容。它具有两个属性:name 和 rows、cols。

name 属性用于指定文本输入框的名称,当表单被提交时,该名称将被用作该字段的标识符,以便在后端代码中处理用户输入。这个代码里的name=“c”,c将在views .py中用作接收客户在浏览器中输入的数据
rows 属性用于指定文本输入框的行数,决定了文本框在垂直方向上的可见高度。
cols 属性用于指定文本输入框的列数,决定了文本框在水平方向上的可见宽度。

view_messages.html:

<!DOCTYPE html>
<html>
<head>
    <title>View Messages</title>
</head>
<body>
    <h1>View Messages</h1>
    {% if messages %}
        <ul>
            {% for message in messages %} # 此处的message只要本html中使用处保持一致即可,但是messages需要与views.py 中对用的信息提交处理函数中的参数保持一致
                <li>{{ message.user }}</li>
                <li>{{ message.content }}</li>
                <li>{{ message.create_at }}</li> #这里的user,content,create_at与是来自于messages的属性--也即是views.py中view_messages()函数所查询的表中对应的属性列,因此需要和models.py中定义的存放留言的表中有存在的列名才可以。
            {% endfor %}
        </ul>
    {% else %}
        <p>No messages found.</p>
    {% endif %}
</body>
</html>
  1. 配置URL路由:打开项目目录下的urls.py文件,并添加以下代码来配置URL路由:

    from django.urls import path
    from myapp.views import submit_message, view_messages
    
    urlpatterns = [
        path('submit/', submit_message, name='submit_message'),#此处的submit_message字符串将在submit_message.html作为url变量传递
        path('view/', view_messages, name='view_messages'),
    ]
    
  2. 运行开发服务器:执行以下命令以启动Django开发服务器:

    python3 manage.py runserver
    
  3. 访问应用程序:在Web浏览器中访问http://localhost:8000/submit/以提交留言,并访问http://localhost:8000/view/以查看留言。(或者可以采用自定义地址和端口的方式启用并测试

经过以上步骤,我们使用MySQL和Django创建了一个简单的留言提交与查看系统。以上提供的只是一个简单的模板,可以根据你的具体需求,进一步扩展和丰富该系统。

请注意,确保将这些模板文件保存在正确的位置,即业务应用程序的templates目录中。且需要把对应的连接URL接入 嵌入到上一篇博文的页面登陆后跳转,
即在上一篇博文中views.py 中的talk_login_au() 的 代码
return HttpResponse(‘HELLO’) 改为
return render(request,‘submit_message.html’)#用户信息验证成功后打开留言提交页面,如下图。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值