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写的一个squid访问日志分析的小程序
Sep 17 Python
python中的字典详细介绍
Sep 18 Python
Python检测QQ在线状态的方法
May 09 Python
Python学习小技巧之列表项的拼接
May 20 Python
浅谈python函数之作用域(python3.5)
Oct 27 Python
分享一个简单的python读写文件脚本
Nov 25 Python
对python判断ip是否可达的实例详解
Jan 31 Python
Python实现的调用C语言函数功能简单实例
Mar 13 Python
numpy中的meshgrid函数的使用
Jul 31 Python
python用WxPython库实现无边框窗体和透明窗体实现方法详解
Feb 21 Python
解决python pandas读取excel中多个不同sheet表格存在的问题
Jul 14 Python
python glom模块的使用简介
Apr 13 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
ASP知识讲座四
2006/10/09 PHP
php启动时候提示PHP startup的解决方法
2013/05/07 PHP
jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码
2014/10/15 PHP
yii实现使用CUploadedFile上传文件的方法
2015/12/28 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
laravel5.2表单验证,并显示错误信息的实例
2019/09/29 PHP
javascripit实现密码强度检测代码分享
2013/12/12 Javascript
jQuery拖拽div实现思路
2014/02/19 Javascript
javascript监听鼠标滚轮事件浅析
2014/06/05 Javascript
JavaScript函数详解
2015/02/27 Javascript
深入理解JavaScript系列(25):设计模式之单例模式详解
2015/03/03 Javascript
js实现input密码框提示信息的方法(附html5实现方法)
2016/01/14 Javascript
jQuery实现table中的tr上下移动并保持序号不变的实例代码
2016/07/11 Javascript
使用JS实现图片展示瀑布流效果(简单实例)
2016/09/06 Javascript
JavaScript之DOM插入更新删除_动力节点Java学院整理
2017/07/03 Javascript
jQuery仿移动端支付宝键盘的实现代码
2018/08/15 jQuery
详解VUE项目中安装和使用vant组件
2019/04/28 Javascript
js实现简单掷骰子效果
2019/10/24 Javascript
vue3.0实现点击切换验证码(组件)及校验
2020/11/18 Vue.js
Python使用稀疏矩阵节省内存实例
2014/06/27 Python
python模拟enum枚举类型的方法小结
2015/04/30 Python
linux平台使用Python制作BT种子并获取BT种子信息的方法
2017/01/20 Python
python监控进程脚本
2018/04/12 Python
Django Sitemap 站点地图的实现方法
2019/04/29 Python
Series和DataFrame使用简单入门
2019/11/13 Python
python中操作文件的模块的方法总结
2021/02/04 Python
python UIAutomator2使用超详细教程
2021/02/19 Python
介绍一下linux的文件系统
2015/10/06 面试题
介绍一下gcc特性
2015/10/31 面试题
毕业生的自我鉴定
2013/10/29 职场文书
国际商务系学生个人的自我评价
2013/11/26 职场文书
信息技术教学反思
2014/02/12 职场文书
敬老月活动总结
2014/08/28 职场文书
党员个人剖析材料2014
2014/10/08 职场文书
交通事故赔偿起诉书
2015/05/20 职场文书
浅谈Python 中的复数问题
2021/05/19 Python