python django实现云端留言板Web应用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/winycg/article/details/78992579

功能

制作一个简易留言板,实现留言和查看留言的功能,

留言:输入留言人A,被留言人B,留言信息msg,点击提交可以将留言信息保存的云端(本例不包括数据库,采用文件形式保存)

获取留言:输入用户名,可以查看所有给自己的留言


开发流程

对django开发不熟悉,先看链接:http://blog.csdn.net/winycg/article/details/78976917
(1)新建django工程:  django-admin startproject messageboard
(2)在工程中新建msgapp: python manage.py startapp msgapp
(3)在msg目录新建templates目录,用于存放HTML文件,HTML文件就是我们展示留言功能的界面
其中{{ }}和{% %}等都是django的模板语言,{% for %}{% endfor %}表示一个循环

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>留言板首页</title>
</head>
<body>
    <h1>提交留言功能区</h1>
    <form action="/msggate/" method="post">
        <!--添加本语句在表单中,可以防止csrf攻击-->
        {% 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>{{ line.userA }}</td>
                <td>{{ line.msg }}</td>
            </tr>
            {% endfor %}
        </tbody>
    </table>

</body>
</html>
(4)在工程目录的settings.py文件中配置模板templates路径,修改的是'DIRS'的内容:
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'msgapp/templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]
(5)配置本地路由和全局路由:
在msgapp中新建urls.py文件,设置本地路由:
from django.urls import path
from . import views


urlpatterns = [
    path('', views.msg_board)
]
在工程的全局路由文件urls.py中:

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

urlpatterns = [
    path('msggate/', include('msgapp.urls')),
    path('admin/', admin.site.urls),
]
(6)在msgapp的viewspy文件中,编写响应代码

from django.shortcuts import render
from datetime import datetime


# Create your views here.
def msg_board(request):
    if request.method == 'POST':
        user_a = request.POST.get('userA', None)
        user_b = 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(user_b, user_a, msg,
                                              time.strftime('%Y-%m-%d %H:%M:%S')))
    data_list = []
    if request.method == 'GET':
        user_c = request.GET.get('userC', None)
        if user_c is not None:
            with open('msgdata.txt', 'r') as fr:
                for line in fr:
                    linedata = line.split('--')
                    if linedata[0] == user_c:
                        data_list.append({'userA': linedata[1],
                                          'msg': linedata[2], 'time': linedata[3]})
    # 最后一个字典填充HTML文件中的data
    return render(request, 'msgWeb.html', {"data": data_list})
(7)运行工程: python manage.py runserver,打开http://localhost:8000/msggate/即可看到结果




阅读更多 登录后自动展开
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页