信息反馈平台

  • 1、项目设计与配置
    • 1.1项目架构设计
    • 1.2MySQL搭建与配置
    • 1.3功能配置
    • 1.4数据库架构设计

1、项目设计与配置

信息反馈平台的功能:
信息反馈页面、Admin后台系统、自定义异常机制和单元测试。

  • 信息反馈页面:信息提交功能(表单形式实现)和信息展示(数据列表),每条信息包含序号、用户名、信息内容和提交日期。
  • Admin后台系统:管理信息反馈页面的数据内容
  • 自定义异常机制:实现404和500的页面设置。
  • 单元测试:测试信息反馈页面的功能。

1.1项目架构设计

  • 在PyCharm下新建Django项目massageboard,在项目中创建项目应用index。

    -在项目的根目录下的模板文件夹templates中,分别创建模板文件404.html、500.html、和base.html,然后在massageboard文件夹中新建jinja2.py文件。目录结构如下:

    -项目应用index用于实现信息反馈页面,在index文件夹中新建templates和static文件夹,分别在templates和static文件夹中放置模板文件index.html和静态资源;然后创建urls.py和form.py文件。整个项目应用index的目录结构如下:
  • 新建文件夹及文件作用说明:
    (1)自定义404和500的模板文件和公用模板文件base.html。
    (2)massageborad的jinja2.py用于定义Jinja2的模板引擎,用于解析模板文件404.html、505.html、base.html和index.html。
    (3)模板文件index.html用于生成信息反馈页面,他继承共用文件base.html。
    (4)index的form.py用于定义表单类massageboardform,在模板文件index.html中使用表单类实现信息提交功能。
    (5)index的urls.py用于定义信息反馈页面的路由信息。
    (6)index的静态资源文件夹static存放模板文件index.html的静态资源,该文件夹的静态资源只能在Django的调试模式下使用。

1.2MySQL搭建与配置

  • 使用Navicat来连接MySQL数据库,新建数据库messagedb,选择字符utf8mb4

1.3功能配置

  • 打开messageboard的配置文件settings.py,分别在INSTALLED_APPS、MIDDLEWARE、TEMPLATES和DATABASES中添加一下配置信息:
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles',#添加项目应用index,当Djago运行的时候加载项目应用index,在网站中生成相应的功能'index'
]MIDDLEWARE = ['django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware',#添加中间件LocaleMiddleware,因为项目中需要内置Admin后台系统实现信息反馈页面的数据管理'django.middleware.locale.LocaleMiddleware','django.middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware',
]
TEMPLATES = [
#使用jinja2模板引擎,用于解析模板文件index.html    {'BACKEND': 'django.template.backends.jinja2.Jinja2','DIRS': [os.path.join(BASE_DIR, 'index/templates'),os.path.join(BASE_DIR,'templates'),],'APP_DIRS': True,'OPTIONS':{'environment':'messageBoard.jinja2.environment',},},#使用Django的模板引擎,解析Admin后台系统的模板文件{'BACKEND':'django.template.backends.django.DjangoTemplates','DIRS':[],'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',],},},
]
#连接刚才新建的数据
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'massagedb','USER':'root','PASSWORD':'1234','HOAT':'127.0.0.1','POST':'3306'}
}
  • Jinja2和Django的模板引擎顺序是固定的,必须将Jinja2的模板引擎设置为首位。因为解析模板文件index.html的时候,Django根据模板引擎的设置顺序解析模板文件,如果将Django的模板引擎设置为首位,就可能无法解析模板文件index.html的Jinja语法。
  • 由于Jinja2模板引擎指向jinja2.py的模板引擎对象environment,因此需要在messageboard的jinja2.py中定义environment。
from django.contrib.staticfiles.storage import staticfiles_storage
from django.urls import reverse
from jinja2 import Environment
#将Jinja2模板定义到Django环境中
def environment (**options):env = Environment(**options)env.globals.update({'static':staticfiles_storage.url,'url':reverse,})return env

1.4数据库架构设计

  • 在index的models.py中定义信息反馈页面的模型message
from django.db import models
class massage(models.Model):id = models.AutoField('序号',primary_key=True)name = models.CharField('名称',max_length=50)content = models.CharField('信息内容',max_length=200)timetamp = models.DateField('反馈时间',auto_created=True)def __str__(self):return self.nameclass Meta:verbose_name = '信息反馈表'verbose_name_plural = '信息反馈表'
  • 定义了模型字段id、name、content和timetamp。其中id为主键,在新增数据时将自动设置字段数据,模型字段timetamp是日期字段,字段属性auto_now设置为True,在新增数据时将自动获取当前日期。
python manage.py makemigrations
python manage.py migrate

如果Django连接MySQL出现的问题,可以参考我的另一篇博客:关于使用Django连接MySQL进行环境配置的一些问题

查看表的结构:

Django实例 信息反馈平台(一)相关推荐

  1. 有空就学学的实例分割1——Tensorflow2搭建Mask R-CNN实例分割平台

    有空就学学的实例分割1--Tensorflow2搭建Mask R-CNN实例分割平台 学习前言 什么是Mask R-CNN 源码下载 Mask R-CNN实现思路 一.预测部分 1.主干网络介绍 2. ...

  2. 基于springboot企业客户信息反馈平台设计与实现的源码+文档

    摘  要 网络的广泛应用给生活带来了十分的便利.所以把企业客户信息反馈管理与现在网络相结合,利用java技术建设企业客户信息反馈平台,实现企业客户信息反馈的信息化.则对于进一步提高企业客户信息反馈管理 ...

  3. 基于Python+django的网购平台购物商城-计算机毕业设计

    项目介绍 当下人们已经进去了网络时代,很多时候人们在买一些日用品的时候已经不再是传统的到超市进行购买和挑选的方式了,更多的人年人通过网络选购所需的商品,然后有物流配送到家,这是当前网络时代给人们很大的 ...

  4. python django实例_python django 模板实例

    操作系统MAC OS/LINUX windows 安装python3 版本3自带virtualenv 安装virtualenv: pip install virtualenv 创建虚拟环境 virtu ...

  5. Android开发实例-Android平台手机新闻客户端

    Android开发实例<Android平台手机新闻客户端>是基于Android4.0及以上平台的一款新闻类手机应用,应用运行效果如下所示: Android开发实例课程主要介绍运行于Andr ...

  6. python基于django的商品比价平台

    本文首先介绍了商品比价系统的发展背景与发展现状,然后遵循软件常规开发流程,首先针对系统选取适用的语言和开发平台,根据需求分析制定模块并设计数据库结构,再根据系统总体功能模块的设计绘制系统的功能模块图, ...

  7. 【Django在线教育平台】04.模板配置,完成用户登录相关页面和逻辑

    专题:Django2.0.8+xadmin2实现在线学习网站 Django2.0.8+xadmin2实现在线学习网站,课程.讲师.机构.用户收藏功能.GitHub地址:https://github.c ...

  8. Python之Django实例--sysinfo项目搭建(中文版 Linux 服务器信息查看应用)

    文章目录 1. 创建项目 1.1 创建项目 1.2 创建App 1.3 配置setting 1.4 生成迁移文件并设置管理员 1.5 测试是否配置成功 1.6 git 提交 1.6.1 设置忽略文件 ...

  9. Django简易测试平台三:模块的增删改查

    1.新建模块base INSTALLED_APPS 增加模块名:base 2.路由设计 1)API/urls.py 配置: 新增如下内容 url(r'^base', include("bas ...

最新文章

  1. 如何设计Kafka?
  2. 【笔记】基于Faster R-CNN的除草机器人杂草识别算法
  3. Qt for ios 打开相机(添加权限)
  4. PHP的composer报错 failed loading cafile stream: `C:\Users\Administrator\Ap pData\Local\Temp\opeB1C9.t
  5. java 树面试题_java——二叉树面试题
  6. c# ui 滚动 分页_UI备忘单:分页,无限滚动和“加载更多”按钮
  7. 大战设计模式【19】—— 享元模式
  8. 新春测 kinect motor
  9. jQuery.proxy用法
  10. 设计模式:简单工厂模式(C++实现)
  11. mov格式怎么转换成mp4?
  12. Python修改文件名
  13. 改计算机名字 和 命令
  14. 输入qq号强制进空间_电梯投影广告渗透必经的生活空间
  15. Django使用旧有的数据库
  16. html实现数独(附源码)
  17. discuz后台主导航栏菜单中添加新的菜单项的方法
  18. oracle报错1455,oracle 1455 错误解决办法
  19. 深入浅出IOC和DI---学习记录
  20. ACL扩展IP访问控制列表配置

热门文章

  1. iOS 开发者账号添加新的管理成员用于上传APP
  2. 外研小学英语音频播放器-带字幕(Android app)
  3. Android Studio 汉化
  4. UnicodeEncodeError: 'utf-8' codec can't encode character '\ud83d' in positio1-31: surrogates not
  5. Linux 休眠,挂起(待机),关机等几个命令的区别及如何实现;如何启用Ubuntu的休眠模式...
  6. window下载远程压缩包(Dos命令下载三行命令)
  7. 怎样做一个优秀的班主任
  8. PowerBuilder History
  9. U3D开发Space Invader中的一些细节
  10. fisco bcos用caliper0.2.0进行压力测试的安装配置