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通过ElementTree操作XML获取结点读取属性美化XML
Dec 02 Python
跟老齐学Python之编写类之三子类
Oct 11 Python
python 性能提升的几种方法
Jul 15 Python
由浅入深讲解python中的yield与generator
Apr 05 Python
Python中文件的读取和写入操作
Apr 27 Python
django加载本地html的方法
May 27 Python
总结python中pass的作用
Feb 27 Python
在Python中等距取出一个数组其中n个数的实现方式
Nov 27 Python
Python 实现顺序高斯消元法示例
Dec 09 Python
Django多进程滚动日志问题解决方案
Dec 17 Python
Django项目uwsgi+Nginx保姆级部署教程实现
Apr 19 Python
浅谈anaconda python 版本对应关系
Oct 07 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循环遍历数组的3种方法list()、each()和while总结
2014/11/19 PHP
PHP实现自动对图片进行滚动显示的方法
2015/03/12 PHP
php将一维数组转换为每3个连续值组成的二维数组
2016/05/06 PHP
thinkPHP5.0框架简单配置作用域的方法
2017/03/17 PHP
js获取提交的字符串的字节数
2009/02/09 Javascript
javascript getElementsByName()的用法说明
2009/07/31 Javascript
js创建子窗口并且回传值示例代码
2013/07/02 Javascript
js抽奖实现随机抽奖代码效果
2013/12/02 Javascript
动态添加option及createElement使用示例
2014/01/26 Javascript
jquery实现预览提交的表单代码分享
2014/05/21 Javascript
JavaScript实现的内存数据库LokiJS介绍和入门实例
2014/11/17 Javascript
JavaScript原型及原型链终极详解
2016/01/04 Javascript
javascript与jquery动态创建html元素示例
2016/07/25 Javascript
微信小程序 rpx 尺寸单位详细介绍
2016/10/13 Javascript
利用iscroll4实现轮播图效果实例代码
2017/01/11 Javascript
在 Angular 中实现搜索关键字高亮示例
2017/03/21 Javascript
Vue.js最佳实践(五招助你成为vuejs大师)
2018/05/04 Javascript
Vue中computed、methods与watch的区别总结
2019/04/10 Javascript
angular4应用中输入的最小值和最大值的方法
2019/05/17 Javascript
详解vue 2.6 中 slot 的新用法
2019/07/09 Javascript
对Layer UI 模块化的用法详解
2019/09/26 Javascript
layui form表单提交后实现自动刷新
2019/10/25 Javascript
NodeJS和浏览器中this关键字的不同之处
2021/03/03 NodeJs
Python安装第三方库及常见问题处理方法汇总
2016/09/13 Python
python2.7读取文件夹下所有文件名称及内容的方法
2018/02/24 Python
python实现多进程代码示例
2018/10/31 Python
python实现接口并发测试脚本
2019/06/25 Python
python创建ArcGIS shape文件的实现
2019/12/06 Python
PyCharm使用Docker镜像搭建Python开发环境
2019/12/26 Python
HTML5 Canvas概述
2009/08/26 HTML / CSS
东南亚旅游平台:The Trip Guru
2018/01/01 全球购物
外贸业务员工作职责
2014/01/06 职场文书
小型女装店的创业计划书
2014/01/09 职场文书
党风廉正建设个人工作总结
2015/03/06 职场文书
还在手动盖楼抽奖?教你用Python实现自动评论盖楼抽奖(一)
2021/06/07 Python
Django使用echarts进行可视化展示的实践
2021/06/10 Python