django云端留言板实例详解


Posted in Python onJuly 22, 2019

1.创建应用

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

2.创建模板文件

在cloudms\msgapp\下创建templates文件夹,在templates文件夹下创建MsgSingleWeb.html(这里在pycharm中可以直接选择new一个HTML file,会自动生成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>

3.引入模板文件
在cloudms\settings.py中修改TEMPLATES=[]中的DIRS,如下

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

4.设定url路由

本地路由。cloudms\msgapp\新建urls.py,内容如下

from django.urls import path
from . import views

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

全局路由引入本地路由,cloudms\cloudms\urls.py内容如下

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

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

5.编写views的交互函数

cloudms\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页面中特定变量赋值

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
介绍Python中几个常用的类方法
Apr 08 Python
一键搞定python连接mysql驱动有关问题(windows版本)
Apr 23 Python
Python内建函数之raw_input()与input()代码解析
Oct 26 Python
pygame游戏之旅 如何制作游戏障碍
Nov 20 Python
python实现对输入的密文加密
Mar 20 Python
opencv调整图像亮度对比度的示例代码
Sep 27 Python
tensorflow tf.train.batch之数据批量读取方式
Jan 20 Python
在tensorflow中设置保存checkpoint的最大数量实例
Jan 21 Python
Python 找出出现次数超过数组长度一半的元素实例
May 11 Python
python实现扫雷游戏的示例
Oct 20 Python
python如何编写类似nmap的扫描工具
Nov 06 Python
详解Python类和对象内容
Jun 22 Python
python实现图片中文字分割效果
Jul 22 #Python
django用户登录验证的完整示例代码
Jul 21 #Python
Python Threading 线程/互斥锁/死锁/GIL锁
Jul 21 #Python
详解Django模版中加载静态文件配置方法
Jul 21 #Python
django数据库自动重连的方法实例
Jul 21 #Python
django使用django-apscheduler 实现定时任务的例子
Jul 20 #Python
python 自定义装饰器实例详解
Jul 20 #Python
You might like
PHP函数学习之PHP函数点评
2012/07/05 PHP
php中调用其他系统http接口的方法说明
2014/02/28 PHP
WebQQ最新登陆协议的用法
2014/12/22 PHP
php实现获取文件mime类型的方法
2015/02/11 PHP
php实现ip白名单黑名单功能
2015/03/12 PHP
浅谈Laravel中的一个后期静态绑定
2017/08/11 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
jQuery中对未来的元素绑定事件用bind、live or on
2014/04/17 Javascript
浅谈JavaScript的事件
2015/02/27 Javascript
浅谈如何实现easyui的datebox格式化
2016/06/12 Javascript
利用vscode编写vue的简单配置详解
2017/06/17 Javascript
JS中‘hello’与new String(‘hello’)引出的问题详解
2018/08/14 Javascript
微信小程序实现随机验证码功能
2018/12/20 Javascript
iview实现select tree树形下拉框的示例代码
2018/12/21 Javascript
关于JS模块化的知识点分享
2019/10/16 Javascript
javascript实现贪吃蛇经典游戏
2020/04/10 Javascript
vue实现div单选多选功能
2020/07/16 Javascript
[01:21:07]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
Python中类的继承代码实例
2014/10/28 Python
Python 数据结构之堆栈实例代码
2017/01/22 Python
Tensorflow环境搭建的方法步骤
2018/02/07 Python
Python hashlib模块用法实例分析
2018/06/12 Python
python-pyinstaller、打包后获取路径的实例
2019/06/10 Python
PyCharm 创建指定版本的 Django(超详图解教程)
2019/06/18 Python
浅谈Pytorch中的自动求导函数backward()所需参数的含义
2020/02/29 Python
Python在centos7.6上安装python3.9的详细教程(默认python版本为2.7.5)
2020/10/15 Python
给幼儿园老师的表扬信
2014/01/19 职场文书
新颖的化妆品活动方案
2014/08/21 职场文书
诉讼代理人授权委托书
2014/10/11 职场文书
毕业生就业推荐表自我评价
2015/03/02 职场文书
2015年世界环境日演讲稿
2015/03/18 职场文书
学雷锋感言
2015/08/03 职场文书
小学英语课教学反思
2016/02/15 职场文书
Python3 多线程(连接池)操作MySQL插入数据
2021/06/09 Python
MySQL Shell import_table数据导入的实现
2021/08/07 MySQL
MySQL数据库索引的最左匹配原则
2021/11/20 MySQL