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 快速排序代码
Nov 23 Python
详细解读Python的web.py框架下的application.py模块
May 02 Python
利用Python3分析sitemap.xml并抓取导出全站链接详解
Jul 04 Python
Python模拟简单电梯调度算法示例
Aug 20 Python
Python绘制的二项分布概率图示例
Aug 22 Python
用Cython加速Python到“起飞”(推荐)
Aug 01 Python
Python拆分大型CSV文件代码实例
Oct 07 Python
python属于哪种语言
Aug 16 Python
python开根号实例讲解
Aug 30 Python
python判断变量是否为列表的方法
Sep 17 Python
PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步骤详解
Nov 02 Python
Python爬虫之Selenium实现键盘事件
Dec 04 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水印技术
2007/02/14 PHP
linux下安装php的memcached客户端
2014/08/03 PHP
php使用date和strtotime函数输出指定日期的方法
2014/11/14 PHP
php实现带读写分离功能的MySQL类完整实例
2016/07/28 PHP
PHP的自定义模板引擎
2017/03/24 PHP
PHPStorm2020.1永久激活及下载更新至2020(推荐)
2020/09/25 PHP
在IE,Firefox,Safari,Chrome,Opera浏览器上调试javascript
2008/12/02 Javascript
用js小类库获取浏览器的高度和宽度信息
2012/01/15 Javascript
jQuery语法总结和注意事项小结
2012/11/11 Javascript
调用innerHTML之后onclick失效问题的解决方法
2014/01/28 Javascript
js实现文本框中焦点在最后位置
2014/03/04 Javascript
jQuery+CSS3实现树叶飘落特效
2015/02/01 Javascript
Jquery中基本选择器用法实例详解
2015/05/18 Javascript
详解Javascript中的Object对象
2016/02/28 Javascript
Node.js制作简单聊天室
2017/01/12 Javascript
nodejs mysql 实现分页的方法
2017/06/06 NodeJs
extjs简介_动力节点Java学院整理
2017/07/17 Javascript
vue中的模态对话框组件实现过程
2018/05/01 Javascript
微信小程序中this.data与this.setData的区别详解
2018/09/17 Javascript
JS面试题大坑之隐式类型转换实例代码
2018/10/14 Javascript
详解ES6 export default 和 import语句中的解构赋值
2019/05/28 Javascript
vue 解决遍历对象显示的顺序不对问题
2019/11/07 Javascript
基于vue中的scoped坑点解说
2020/09/04 Javascript
vue 获取url里参数的两种方法小结
2020/11/12 Javascript
Python实现将罗马数字转换成普通阿拉伯数字的方法
2017/04/19 Python
Python 实现Image和Ndarray互相转换
2020/02/19 Python
.img/.hdr格式转.nii格式的操作
2020/07/01 Python
Python如何把字典写入到CSV文件的方法示例
2020/08/23 Python
贝玲妃美国官方网站:Benefit美国
2016/08/28 全球购物
Clarks英国官方网站:全球领军鞋履品牌
2016/11/26 全球购物
后勤人员自我评价怎么写
2013/09/19 职场文书
大学生毕业自我评价范文分享
2013/11/11 职场文书
化妆师职业生涯规划书
2014/02/16 职场文书
《春到梅花山》教学反思
2014/04/16 职场文书
小学六一儿童节活动方案
2014/08/27 职场文书
2014司机年终工作总结
2014/12/05 职场文书