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脚本生成Android SALT扰码的方法
Sep 18 Python
Python开发WebService系列教程之REST,web.py,eurasia,Django
Jun 30 Python
Python解惑之整数比较详解
Apr 24 Python
Python中异常重试的解决方案详解
May 05 Python
Python简单处理坐标排序问题示例
Jul 11 Python
python实现多线程端口扫描
Aug 31 Python
Numpy之reshape()使用详解
Dec 26 Python
PyTorch实现ResNet50、ResNet101和ResNet152示例
Jan 14 Python
Python GUI库PyQt5图形和特效样式QSS介绍
Feb 25 Python
python中如何进行连乘计算
May 28 Python
详解matplotlib绘图样式(style)初探
Feb 03 Python
python爬虫scrapy基本使用超详细教程
Feb 20 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
关于文本留言本的分页代码
2006/10/09 PHP
ThinkPHP Mobile使用方法简明教程
2014/06/18 PHP
在chrome中window.onload事件的一些问题
2010/03/01 Javascript
使用js 设置url参数
2013/07/08 Javascript
浅谈javascript 函数内部属性
2015/01/21 Javascript
Bootstrap被封装的弹层
2016/07/20 Javascript
JS获取字符串实际长度(包含汉字)的简单方法
2016/08/11 Javascript
JS匿名函数实例分析
2016/11/26 Javascript
Angular.JS判断复选框checkbox是否选中并实时显示
2016/11/30 Javascript
基于Bootstrap的Java开发问题汇总(Spring MVC)
2017/01/15 Javascript
Javascript中 带名 匿名 箭头函数的重要区别(推荐)
2017/01/29 Javascript
AngularJs每天学习之总体介绍
2017/08/07 Javascript
jQuery实现获取table中鼠标click点击位置行号与列号的方法
2017/10/09 jQuery
vue中监听路由参数的变化及方法
2019/12/06 Javascript
vue+ElementUI 关闭对话框清空验证,清除form表单的操作
2020/08/06 Javascript
vue路由结构可设一层方便动态添加路由操作
2020/08/31 Javascript
python实现DES加密解密方法实例详解
2015/06/30 Python
离线安装Pyecharts的步骤以及依赖包流程
2020/04/23 Python
python画出三角形外接圆和内切圆的方法
2018/01/25 Python
妙用itchat! python实现久坐提醒功能
2019/11/25 Python
TensorFlow实现批量归一化操作的示例
2020/04/22 Python
python爬取音频下载的示例代码
2020/10/19 Python
H5 video poster属性设置视频封面的方法
2020/05/25 HTML / CSS
德国黑胶唱片、街头服装及运动鞋网上商店:HHV
2018/08/24 全球购物
Linux常见面试题
2013/03/18 面试题
聘任书模板
2014/03/29 职场文书
迟到检讨书
2015/01/26 职场文书
外贸英文求职信范文
2015/03/19 职场文书
2015年置业顾问工作总结
2015/04/07 职场文书
仓库统计员岗位职责
2015/04/14 职场文书
《鸡兔同笼》教学反思
2016/02/19 职场文书
销售会议开幕词
2016/03/04 职场文书
2016年万圣节家长开放日活动总结
2016/04/05 职场文书
2019教师的学习计划
2019/06/25 职场文书
2019年第四季度财务部门工作计划
2019/11/02 职场文书
使用 DataAnt 监控 Apache APISIX的原理解析
2022/07/07 Servers