Django云端留言板开发实战:从项目创建到视图逻辑

一颗松果
一颗松果
发布时间:2026-10-13| 7人浏览过
原创

本文详细演示如何使用Django框架搭建一个云端留言板应用。内容涵盖创建Django项目与APP、编写包含表单提交与数据展示的HTML模板、配置模板加载路径、设定本地与全局URL路由,以及实现处理POST留言保存和GET留言查询的视图函数。通过完整代码示例,帮助开发者快速掌握Django基础Web开发流程。

创建Django项目与应用

第一步,初始化Django项目结构。在项目根目录下执行命令创建名为cloudms的项目,进入该项目目录后,再创建一个名为msgapp的应用模块。


django-admin startproject cloudms
cd cloudms
python manage.py startapp msgapp

构建前端模板文件

第二步,准备前端模板文件。

在msgapp应用目录下新建templates文件夹,并在其中创建名为MsgSingleWeb.html的HTML文件。使用PyCharm等IDE新建HTML文件时,系统会自动生成包含html、head、body等基本标签的结构。该模板文件的具体内容如下所示。


<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>云端留言板(1)首页</title>
</head>
<body>
  <h1>提交留言功能区</h1>
  <form action="/msggate/" method="post">
    {% csrf_token %}
    发送方 <input type="text" name="userA" /><br>
    接收方 <input type="text" name="userB" /><br>
    消息文 <input type="text" name="msg" /><br>
    <input type="submit" value="留言提交"/>
  </form>

  <h1>获取留言功能区</h1>
  <form action="/msggate/" method="get">
    接收方 <input type="text" name="userC" /><br>
    <input type="submit" value="留言获取">
  </form>
  <table border="1">
    <thead>
      <th>留言时间</th>
      <th>留言来源</th>
      <th>留言信息</th>
    </thead>
    <br>
    <tbody>
      {% for line in data %}
      <tr>
        <td>{{ line.time }}</td>
        <td align="center">{{ line.userA }}</td>
        <td>{{ line.msg }}</td>
      </tr>
      {% endfor %}
    </tbody>
  </table>
</body>
</html>

配置模板加载路径

第三步,配置模板加载路径。打开cloudms项目下的settings.py文件,修改TEMPLATES配置项中的DIRS参数,指定模板文件的查找目录为msgapp下的templates文件夹。


'DIRS': [os.path.join(BASE_DIR,"msgapp/templates")],

设定URL路由规则

第四步,配置URL路由规则。

首先配置本地路由。在msgapp应用目录下新建urls.py文件,定义该应用内的URL映射关系,具体代码内容如下。


from django.urls import path
from . import views

urlpatterns=[
  path('',views.msgproc),
]

接着配置全局路由。在cloudms项目的总urls.py文件中引入msgapp的本地路由,将特定路径指向msgapp的处理逻辑,具体配置如下。


from django.contrib import admin
from django.urls import path,include

urlpatterns = [
  path("msggate/",include('msgapp.urls')),
  path('admin/', admin.site.urls),
]

编写视图交互函数

第五步,编写处理交互逻辑的视图函数。

在msgapp应用下的views.py文件中实现具体的业务逻辑,包括接收请求、处理数据及返回响应,完整代码内容如下。


from django.shortcuts import render
from datetime import datetime
# Create your views here.
def msgproc(request):
  datalist=[]
  if(request.method=="POST"):
    userA=request.POST.get("userA",None)
    userB=request.POST.get("userB",None)
    msg=request.POST.get("msg",None)
    time=datetime.now()
    with open('msgdata.txt','a+') as f:
      f.write("{}--{}--{}--{}--\n".format(userB,userA,msg,time.strftime("%Y-%m-%d %H:%M:%S")))

  if(request.method=="GET"):
    userC=request.GET.get("userC",None)
    if(userc!=None):
      with open('msgdata.txt','r') as f:
        cnt=0
        for line in f:
          linedata=line.split('--')
          if(linedata[0]==userC):
            d={"userA":linedata[1],"msg":linedata[2],"time":linedata[3]}
            datalist.append(d)
          if(cnt>=10):
            break
  return render(request,"MsgSingleWeb.html",{"data":datalist}) ##render函数第三个参数是字典类型,表明向html页面中特定变量赋值

至此,完成了云端留言板的核心开发步骤。希望本文的内容能为学习Django开发提供有益参考,欢迎继续支持本站获取更多技术资源。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。