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 文件操作技巧(File operation) 实例代码分析
Aug 11 Python
python获得一个月有多少天的方法
Jun 04 Python
Python实现比较两个列表(list)范围
Jun 12 Python
Zabbix实现微信报警功能
Oct 09 Python
Django自定义分页效果
Jun 27 Python
python中字符串变二维数组的实例讲解
Apr 03 Python
Python爬虫文件下载图文教程
Dec 23 Python
使用Python 统计高频字数的方法
Jan 31 Python
在python中利用numpy求解多项式以及多项式拟合的方法
Jul 03 Python
Python流程控制 if else实现解析
Sep 02 Python
Django认证系统user对象实现过程解析
Mar 02 Python
完美解决pyinstaller打包报错找不到依赖pypiwin32或pywin32-ctypes的错误
Apr 01 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的ob_start();控制您的浏览器cache!
2006/11/25 PHP
CakePHP框架Session设置方法分析
2017/02/23 PHP
php获取网站根目录物理路径的几种方法(推荐)
2017/03/04 PHP
PHP开发API接口签名生成及验证操作示例
2020/05/27 PHP
javascript onmouseout 解决办法
2010/07/17 Javascript
js 得到文件后缀(通过正则实现)
2013/07/08 Javascript
JQuery控制div外点击隐藏而div内点击不会隐藏的方法
2015/01/13 Javascript
jquery转盘抽奖功能实现
2015/11/13 Javascript
内容滑动切换效果jquery.hwSlide.js插件封装
2016/07/07 Javascript
JavaScript中的对象继承关系
2016/08/01 Javascript
在JS中a标签加入单击事件屏蔽href跳转页面
2016/12/16 Javascript
JS获得一个对象的所有属性和方法实例
2017/02/21 Javascript
jQuery查找和过滤_动力节点节点Java学院整理
2017/07/04 jQuery
微信小程序实现自动定位功能
2018/10/31 Javascript
JS异步错误捕获的一些事小结
2019/04/26 Javascript
JavaScript从原型到原型链深入理解
2019/06/03 Javascript
swiper Scrollbar滚动条组件详解
2019/09/08 Javascript
vue自定义switch开关组件,实现样式可自行更改
2019/11/01 Javascript
Paypal支付不完全指北
2020/06/04 Javascript
JavaScript实现京东快递单号查询
2020/11/30 Javascript
[56:45]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第一局
2016/02/28 DOTA
Python命名空间详解
2014/08/18 Python
python爬虫常用的模块分析
2014/08/29 Python
Swift中的协议(protocol)学习教程
2016/07/08 Python
Python将多份excel表格整理成一份表格
2018/01/03 Python
解决Python print 输出文本显示 gbk 编码错误问题
2018/07/13 Python
win7下 python3.6 安装opencv 和 opencv-contrib-python解决 cv2.xfeatures2d.SIFT_create() 的问题
2019/10/24 Python
基于python判断目录或者文件代码实例
2019/11/29 Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
2020/06/17 Python
预备党员思想汇报范文
2014/01/11 职场文书
全陪导游欢迎词
2014/01/17 职场文书
2014年销售工作总结
2014/12/01 职场文书
通报表扬范文
2015/01/17 职场文书
幼儿园托班开学寄语(2015秋季)
2015/05/27 职场文书
《大禹治水》教学反思
2016/02/22 职场文书
Win11应用商店打开闪退怎么解决? win11应用商店打不开的多种解决办法
2022/04/05 数码科技