Django云端留言板开发实战:从项目创建到视图逻辑
本文详细演示如何使用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开发提供有益参考,欢迎继续支持本站获取更多技术资源。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









