文章目录

  • 1 创建项目
  • 2 创建app
  • 3 添加模板
  • 4 编辑路由(urls)
    • 4.1 添加局部路由:
    • 4.2 修改全局路由:
  • 5 修改setting.py
  • 6 编辑views.py

效果预览,源码已上传到我的下载主页,自取:

1 创建项目

C:\Users\88304>django-admin startproject columnsC:\Users\88304>cd columns

2 创建app

C:\Users\88304\columns>python manage.py startapp msgapp

3 添加模板

在msgapp中创建templates目录,新建html文件MsgSingleWeb

<!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>

4 编辑路由(urls)

4.1 添加局部路由:

from django.urls import path
from . import viewsurlpatterns = [path('', views.msgproc),
]

4.2 修改全局路由:

要先引入include模块。

"""cloudms URL ConfigurationThe `urlpatterns` list routes URLs to views. For more information please see:https://docs.djangoproject.com/en/2.0/topics/http/urls/
Examples:
Function views1. Add an import:  from my_app import views2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views1. Add an import:  from other_app.views import Home2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf1. Import the include() function: from django.urls import include, path2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import include, path
from msgapp import views as msgviewsurlpatterns = [path('msggate/', include('msgapp.urls')),path('admin/', admin.site.urls),path('', msgviews.homeproc1),path('tupian/',msgviews.homeproc2),path('playground/', msgviews.pgproc)]

5 修改setting.py

"""
Django settings for cloudms project.Generated by 'django-admin startproject' using Django 2.0.For more information on this file, see
https://docs.djangoproject.com/en/2.0/topics/settings/For the full list of settings and their values, see
https://docs.djangoproject.com/en/2.0/ref/settings/
"""import os# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/2.0/howto/deployment/checklist/# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'zw@=-87mqybl^8ztui#)j1(==y4rice&vk!(z**w_q(_^05sal'# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = TrueALLOWED_HOSTS = []# Application definitionINSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles',
]MIDDLEWARE = ['django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware',
]ROOT_URLCONF = 'cloudms.urls' #moTEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [os.path.join(BASE_DIR, "msgapp/templates")],'APP_DIRS': True,'OPTIONS': {'context_processors': ['django.template.context_processors.debug','django.template.context_processors.request','django.contrib.auth.context_processors.auth','django.contrib.messages.context_processors.messages',],},},
]WSGI_APPLICATION = 'cloudms.wsgi.application'# Database
# https://docs.djangoproject.com/en/2.0/ref/settings/#databasesDATABASES = {'default': {'ENGINE': 'django.db.backends.sqlite3','NAME': os.path.join(BASE_DIR, 'db.sqlite3'),}
}# Password validation
# https://docs.djangoproject.com/en/2.0/ref/settings/#auth-password-validatorsAUTH_PASSWORD_VALIDATORS = [{'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',},{'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',},{'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',},{'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',},
]# Internationalization
# https://docs.djangoproject.com/en/2.0/topics/i18n/LANGUAGE_CODE = 'en-us'TIME_ZONE = 'UTC'USE_I18N = TrueUSE_L10N = TrueUSE_TZ = True# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.0/howto/static-files/STATIC_URL = '/static/'

6 编辑views.py

from django.shortcuts import render
from datetime import datetime
from django.http import HttpResponse, JsonResponse, FileResponse
from django.template import Template, Context
import os# 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 = 0for line in f:linedata = line.split('--')if linedata[0] == userC:cnt = cnt + 1d = {"userA":linedata[1], "msg":linedata[2]\, "time":linedata[3]}datalist.append(d)if cnt >= 10:breakreturn render(request, "MsgSingleWeb.html", {"data":datalist})def homeproc(request):response = HttpResponse()response.write("<h1>这是首页, 具体功能请访问<a href='./msggate'>这里</a></h1>")response.write("<h1>这是第二行</h1>")return response#return HttpResponse("<h1>这是首页,具体功能请访问<a href='./msggate'>这里</a></h1>")def homeproc1(request):response = JsonResponse({'key': 'value1'})return responsedef homeproc2(request):cwd = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))response = FileResponse(open(cwd + "/msgapp/templates/PyLogo.png", "rb"))response['Content-Type'] = 'application/octet-stream'response['COntent-Disposition'] = 'attachment;filename="pylogo.png"'return responsedef pgproc(request):template = Template("<h1>这个程序的名字是{{ name }}</h1>")context = Context({"name" : "实验平台"})return HttpResponse(template.render(context))

【django轻量级框架】云端系统之Django框架实现云端留言板(不用数据库,看不懂你来打我)相关推荐

  1. 老罗的《Android系统源代码情景分析》翻了10遍还看不懂?因为你用错了

    最近老朽又把罗升阳老师的<Android系统源代码情景分析>拿出来啃了一番. 为什么要加个"又"呢?因为从老罗的第一版开始到迄今为止尚未更新的第三版为止,每年有学习冲动 ...

  2. 【django轻量级框架】云端系统之Django框架

    文章目录 1 Web框架 2 工程目录结构 3 调试运行Web框架 3.1 Django admin 3.2 manage.py 4 创建一个具体应用 4.1 修改应用的view.py 4.2 修改U ...

  3. 【django轻量级框架】云端系统之Django框架进阶

    文章目录 1 Django的URL路由配置 2 视图函数编写规则 3 Django模板 1 Django的URL路由配置 2 视图函数编写规则 3 Django模板

  4. 【django轻量级框架】(Python3.6.8+Django2.0)第一个Django项目与基础环境搭建

    一.前言 Django 是一个开放源代码的 Web 应用框架,由 Python 写成.采用了 MTV 的框架模式,即模型 M,模板 T 和视图 V.当然,网上也有人说 Django 采用了 MVC 的 ...

  5. Django企业开发实战 高效Python Web框架指南 笔记 (一)

    Django企业开发实战 高效Python Web框架指南 笔记 (一) 内容: 作者是 the5fire,他的博客地址:https://www.the5fire.com/957.html 2016年 ...

  6. Python云端系统开发入门——云端系统之框架基础

    Django简介 Python下有许多款不同的 Web 框架.Django是重量级选手中最有代表性的一位.许多成功的网站和APP都基于Django. Django 是一个开放源代码的 Web 应用框架 ...

  7. 深度盘点Python11个主流框架:Pandas、Django、Matplotlib、Numpy、PyTorch......

    六月份TIOBE编程语言排行榜,位居第二名的Python与第一名C语言之间的差距正在逐渐缩小.Python如此受欢迎一方面得益于它崇尚简洁的编程哲学,另一方面是因为强大的第三方库生态. 要说杀手级的库 ...

  8. 深度盘点 Python11 个主流框架:Pandas、Django、Matplotlib、Numpy、PyTorch......

    六月份TIOBE编程语言排行榜,位居第二名的Python与第一名C语言之间的差距正在逐渐缩小.Python如此受欢迎一方面得益于它崇尚简洁的编程哲学,另一方面是因为强大的第三方库生态. 要说杀手级的库 ...

  9. Django框架深入了解_01(Django请求生命周期、开发模式、cbv源码分析、restful规范、跨域、drf的安装及源码初识)

    阅读目录 一.Django请求生命周期: 二.WEB开发模式: 三.cbv源码分析: 四.认识RESTful 补充知识:跨域 五.基于原生django开发restful的接口 六.drf安装.使用.A ...

最新文章

  1. 在Ubuntu 14.04 64bit上安装redis 3.0.3
  2. python读取txt文件代码-从文本文件中读取Python代码
  3. python中文意思k-python-RepeatedKFold实际上是什么意思?
  4. struts2 页面取值_struts2.1如何在页面上取值?
  5. 创建Invoice和公司间Invoice
  6. 使用LocalTestServer对HTTP调用进行单元测试
  7. python打开火狐浏览器打不开网页_PHP让指定网页只能在微信内置浏览器打开 附代码...
  8. 抢那么多封面,有那么多钱发红包吗?
  9. Flex4.5中检测网络连接类型
  10. 金融+大数据解决方案:银行业
  11. mysql-connector-java驱动包下载地址收藏 mysql驱动包下载地址
  12. 微软vc运行库地址VC9VC11
  13. 主流PC常用总线总结
  14. SAP-客户主数据维护
  15. win11输入法繁体字切换简体字——记录
  16. Android 内存剖析 – 发现潜在问题
  17. 支持linux的代码审计,linux驱动代码审计经验谈
  18. neuq计算机与通信工程学院,王新宇
  19. Java_定时请求后端接口数据发送RabbitMQ消息到指定MQ服务器
  20. 当你在浏览器地址栏输入一个URL后回车,将会发生的事情?

热门文章

  1. nvidia 程序安装失败
  2. pytorch可视化 resnet50特征图
  3. 高清变脸更快更逼真!比GAN更具潜力的可逆生成模型来了 | OpenAI论文+代码
  4. Opencv常见用法和常见错误(一)
  5. Cissp-【第4章 通信与网络安全】-2021-3-12(377页-392页)
  6. Guestfish 使用说明
  7. python运行过程中会被编译成二进制_Python代码在运行过程中,会被编译成二进制代码。_学小易找答案...
  8. 菜鸟驿站是什么快递_95后女生在横店开菜鸟驿站,每天帮大明星和小龙套收快递...
  9. python定_Python 定值类
  10. python视图函数是什么_python项目Django(视图函数)