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使用cookielib库示例分享
Mar 03 Python
Python实现Windows上气泡提醒效果的方法
Jun 03 Python
基于Django URL传参 FORM表单传数据 get post的用法实例
May 28 Python
python处理数据,存进hive表的方法
Jul 04 Python
django框架model orM使用字典作为参数,保存数据的方法分析
Jun 24 Python
Pandas中Series和DataFrame的索引实现
Jun 27 Python
python3实现raspberry pi(树莓派)4驱小车控制程序
Feb 12 Python
Anaconda+VSCode配置tensorflow开发环境的教程详解
Mar 30 Python
Python devel安装失败问题解决方案
Jun 09 Python
Python爬虫开发与项目实战
Dec 16 Python
python入门之算法学习
Apr 22 Python
Python面向对象之内置函数相关知识总结
Jun 24 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 define()函数以及defined()函数的用法详解
2013/06/05 PHP
PHP设置图片文件上传大小的具体实现方法
2013/10/11 PHP
Zend Framework教程之Application和Bootstrap用法详解
2016/03/10 PHP
JavaScript代码编写中各种各样的坑和填坑方法
2014/06/06 Javascript
JavaScript中的类数组对象介绍
2014/12/30 Javascript
kindeditor编辑器点中图片滚动条往上顶的bug
2015/07/05 Javascript
js实现横向伸展开的二级导航菜单代码
2015/08/28 Javascript
js弹出对话框方式小结
2015/11/17 Javascript
three.js中文文档学习之创建场景
2017/11/20 Javascript
用jquery获取select标签中选中的option值及文本的示例
2018/01/25 jQuery
详解vue 动态加载并注册组件且通过 render动态创建该组件
2019/05/30 Javascript
[46:28]EG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
Django中实现点击图片链接强制直接下载的方法
2015/05/14 Python
python中的全局变量用法分析
2015/06/09 Python
两个使用Python脚本操作文件的小示例分享
2015/08/27 Python
python版本坑:md5例子(python2与python3中md5区别)
2017/06/20 Python
python监控键盘输入实例代码
2018/02/09 Python
python实现Adapter模式实例代码
2018/02/09 Python
基于DataFrame筛选数据与loc的用法详解
2018/05/18 Python
使用Anaconda3建立虚拟独立的python2.7环境方法
2018/06/11 Python
Sanic框架基于类的视图用法示例
2018/07/18 Python
Django网络框架之创建虚拟开发环境操作示例
2019/06/06 Python
python通过robert、sobel、Laplace算子实现图像边缘提取详解
2019/08/21 Python
Python创建一个元素都为0的列表实例
2019/11/28 Python
flask利用flask-wtf验证上传的文件的方法
2020/01/17 Python
django xadmin中form_layout添加字段显示方式
2020/03/30 Python
Python魔术方法专题
2020/06/19 Python
如何以Winsows Service方式运行JupyterLab
2020/08/30 Python
如何使用 Python 读取文件和照片的创建日期
2020/09/05 Python
美国乒乓球设备、配件和服装品牌:Killerspin
2020/06/07 全球购物
学期自我评价
2014/01/27 职场文书
师说教学反思
2014/02/07 职场文书
2014年为民办实事工作总结
2014/12/20 职场文书
有关三国演义的读书笔记
2015/06/25 职场文书
Python中常见的反爬机制及其破解方法总结
2021/06/10 Python
python获取对象信息的实例详解
2021/07/07 Python