上一篇:Django总目录篇 点击跳转

目录

  • Django的魅力
  • 按图需求分析
  • 首页需求分析
  • 核心团队
  • 职员现状
  • 在线视频
  • 常见问题
  • 关于我们
  • Djangoadmin后台管理

Django的魅力

Django总目录篇:https://blog.csdn.net/Burgess_zheng/article/details/86751143

Django学会了以后,官网项目就可以使用Django框架很轻松又效率实现前端展现后台内容管理
以下是自己以前实现的官网(个人爱好随便写的),因为前端手写标签+引入bootstrap所以稍微有点丑(可以去买模板更快),不过这不妨碍我们进行需求分析进而表结构设计

按图需求分析

大类:首页、核心团队、职员现状、在线视频、常见问题、关于我们、后台管理(admin后台管理不显示)
大类我们就无需表设计了.一般情况大类基本不变,静态即可

首页需求分析

首页主要展示:轮播图、最新公告、业务、职员现状、招聘信息、企业合作等

轮播图(这里我是引入bootstrap上的轮播图):

1.图片需具备上线下线功能,所以需要一个状态字段(status)
2.可能上传很多照片,但是轮播图我们可能有数量限制,排位问题,所以需要一个权重字段(weight)
3.需要一个图片名字段(name)
4.管理上传的图片路径我们需要知道,前端才可以调用,所以需要一个图片路径字段(img)
5.一般图片可能有需求进行跳转,所以需要一个跳转字段(href)
6.图片上传的日期也有需求,所以需要一个图片上传日期字典(create_date)

最后表代码如下:

class Carousel(models.Model):status_choice = ((1, '下线'),(2, '上线'),)status = models.IntegerField(verbose_name='状态', choices=status_choice, default=2)weight = models.IntegerField(verbose_name='权重(按从大到小排列)', default=0)name = models.CharField(max_length=32, verbose_name='图名',)img = models.ImageField(max_length=64, verbose_name='图片路径',upload_to='./static/imgs/officialwebsite/carousel/')href = models.CharField(max_length=256,verbose_name='跳转链接')create_date= models.DateTimeField(auto_now_add=True)class Meta:db_table = 'Carousel'verbose_name_plural = '轮播图'def __str__(self):return self.name

最新公告

1.公告也需具备上下线功能,所以需要一个状态字段(status)
2.公告很多,但是首页展现的数量限制,排位问题,所以需要一个权重字段(weight)
3.公告标题(title)
4.公告的简介(summary)
5.公告详细(detail)
6.创建时间(create_date)

class Notice(models.Model):status_choice = ((1, '不显示'),(2, '显示'),)status = models.IntegerField(verbose_name='状态', choices=status_choice, default=2)weight = models.IntegerField(verbose_name='权重(按从大到小排列)', default=0)title = models.CharField(max_length=16, verbose_name='标题')summary = models.CharField(max_length=256, verbose_name='简介')detail = models.TextField(verbose_name='详情')create_date = models.DateTimeField(auto_now_add=True)class Meta:db_table = 'Notice'verbose_name_plural = '公告'def __str__(self):return self.title

业务

1.业务需具备上线下线功能,所以需要一个状态字段(status)
2.可能业务众多,但是展现的业务数量有限,排位问题,所以需要一个权重字段(weight)
3.业务也需要有图片,所有我们需要一个图片路径(icon)
4.业务名字字典也是必须有的(name)
5.业务的简介我们也需要有(summary)
6.业务创建时间(create_date)

最后表代码如下:

class Professional(models.Model):status_choice = ((1, '下线'),(2, '上线'),)status = models.IntegerField(verbose_name='状态', choices=status_choice, default=2)weight = models.IntegerField(verbose_name='权重(按从大到小排列)', default=0)icon = models.ImageField(max_length=64,verbose_name='图片路径',upload_to='./static/imgs/officialwebsite/progessional/',null=True,blank=True)name = models.CharField(max_length=32,verbose_name='业务名')summary =  models.CharField(max_length=256,verbose_name='简介')create_date = models.DateTimeField(auto_now_add=True)class Meta:db_table = 'Professional'verbose_name_plural = '业务'def __str__(self):return self.name

职员

1.该职员是否离职了,所以需要一个状态字段(status)
2.职员名字(name)
3.职员图片路径(src)
4.职员简介(summary)
5.关联个人链接表外键关联(这个字段可以多种选择的设计,如链接表关联回来也行)(sl)
6.所属部门外键关联(dt)
7.属于什么也为级别的外键关联(pt)
注意:其实部门和职位我们应该是建立多对多关系,然后职员关联多对多表的,这里就没有设置那么复杂了

最后表代码如下:

class Staff(models.Model):status_choice = ((1, '下线'),(2, '上线'),)status = models.IntegerField(verbose_name='状态', choices=status_choice, default=2)name = models.CharField(max_length=32,verbose_name='职员名')src = models.ImageField(max_length=64,verbose_name='图片路径',upload_to='./static/imgs/officialwebsite/staff/',null=True,blank=True)summary = models.CharField(max_length=128,verbose_name='简介')sl = models.ForeignKey('Selflinks',on_delete=models.CASCADE)dt = models.ForeignKey('Department',on_delete=models.CASCADE)pt = models.ForeignKey('Position',on_delete=models.CASCADE)create_date = models.DateTimeField(auto_now_add=True)class Meta:db_table = 'staff'verbose_name_plural = '职员'def __str__(self):return self.name

招聘信息

1.该职位是否招聘中(status)
2.权重字段,排位问题(weght)
3.招聘的职位(post)
4.薪水(salary)
5.招聘需求(summary)
还有很多就不一一列举,如学历需求,招聘地址,经验要求等等

最后表代码如下:

class Invite(models.Model):status_choice = ((1, '下线'),(2, '上线'),)status = models.IntegerField(verbose_name='状态', choices=status_choice, default=2)weight = models.IntegerField(verbose_name='权重(按从大到小排列)', default=0)post = models.CharField(max_length=32, verbose_name='职位')salary = models.CharField(max_length=64, verbose_name='薪水')summary = models.CharField(max_length=128,verbose_name='简介')class Meta:db_table = 'Invite'verbose_name_plural = '招聘'def __str__(self):return self.post

企业合作

1.是否合作到期了,所以需要一个状态字段(status)
2.权重字段,到排位问题(weght)
3.企业的链接(link)
4.企业的logo(logo)
5.企业的名称(name)

最后表代码如下:

class Cooperation(models.Model):status_choice = ((1, '下线'),(2, '上线'),)status = models.IntegerField(verbose_name='状态', choices=status_choice, default=2)weight = models.IntegerField(verbose_name='权重(按从大到小排列)', default=0)link = models.CharField(max_length=256, verbose_name='企业链接')logo = models.ImageField(max_length=64, verbose_name='企业logo',upload_to='./static/imgs/officialwebsite/cooperation/')name = models.CharField(max_length=256, verbose_name='企业名称')class Meta:db_table = 'Cooperation'verbose_name_plural = '合作企业'def __str__(self):return self.name

核心团队

主要展现核心团队的管理人员(核心人员的姓名、职位、个人链接,介绍)

调用职员表( 上面有了)

个人链接表(职员关联的外键表)

代码如下:

class Selflinks(models.Model):sina = models.CharField(verbose_name='新浪微博地址', max_length=256)cnblogs = models.CharField(verbose_name='博客园微博地址', max_length=256)video = models.CharField(verbose_name='视频地址', max_length=256)class Meta:db_table = 'Selflinks'verbose_name_plural = '职员个人链接'

职员现状

展现员工风采使用了图片墙方式(爆破流实现,示例:花瓣网)

滚动条往下拉请求更多指定数量图片

在线视频

主要展现视频(涉及到组合搜索,以及分页)

如下面的代码:
1.dir方向表(大类) 、class分类表,level难度等级表,video视频表
2.dir方向表和class分类表是多对多关系
3.video视频表只需要外键关联level难度等级表和class分类表即可

class Direction(models.Model):"""方向:弱电  集群  开发  网络"""name = models.CharField(verbose_name='名称', max_length=32)classification = models.ManyToManyField('Classification')class Meta:db_table = 'Direction'verbose_name_plural = '方向(视频方向)'def __str__(self):return self.nameclass Classification(models.Model):"""分类: Linux  shell OpenStack Python C C++ java  JavaScript Node.js Cad  Photoshop  ccie SNMP"""name = models.CharField(verbose_name='名称', max_length=32)class Meta:db_table = 'Classification'verbose_name_plural = '分类(视频分类)'def __str__(self):return self.nameclass Level(models.Model):title = models.CharField(max_length=32)class Meta:verbose_name_plural = '难度级别'def __str__(self):return self.titleclass Video(models.Model):status_choice = ((1, '下线'),(2, '上线'),)status = models.IntegerField(verbose_name='状态', choices=status_choice, default=2)level = models.ForeignKey(Level,on_delete=models.CASCADE)classification = models.ForeignKey('Classification', null=True, blank=True,on_delete=models.CASCADE)weight = models.IntegerField(verbose_name='权重(按从大到小排列)', default=0)title = models.CharField(verbose_name='标题', max_length=32)summary = models.CharField(verbose_name='简介', max_length=32)img = models.ImageField(verbose_name='图片', upload_to='./static/imgs/officialwebsite/video')# img = models.CharField(verbose_name='图片',max_length=32)href = models.CharField(verbose_name='视频地址', max_length=256)create_date = models.DateTimeField(auto_now_add=True)class Meta:db_table = 'Video'verbose_name_plural = '视频'def __str__(self):return self.title

常见问题

主要展现常见问题,这里我就没有设置表,静态即可(当然设置表更好,企业问题我们还是需要保留,或者不断增加)

关于我们

主要展现了公司的简介,每天报道,人才招聘,搜后服务,联系我们等等,

使用百度地图API生成的

使用iframe导入腾讯视频

Djangoadmin后台管理

使用Django框架基于表数据前后端交互就实现了官网项目(可根据自己的需求设计前端需求的内容)

上一篇:Django总目录篇 点击跳转

django项目之官网需求分析实现相关推荐

  1. Django打造大型企业官网-项目部署

    Django打造大型企业官网-项目部署 一.准备工作 1.在开发机上的准备工作 1)确认项目没有bug. 2)打开终端,进入虚拟环境,再 cd 到项目根目录下,执行命令:pip freeze > ...

  2. Django打造大型企业官网-项目实战(三)

    Django打造大型企业官网-项目实战(三) 一.CRM 后台管理系统 前面我们使用的是 xadmin 后台管理系统,在使用中发现,在权限限制中,我们能实现不同等级的用户/管理(超级管理员/管理员/用 ...

  3. Django打造大型企业官网-项目实战(四)

    Django打造大型企业官网-项目实战(四) 一.新闻相关功能 在项目实战三中,我们完成了新闻分类相关的一些功能,现在我们来完成新闻列表.发布新闻.编辑新闻.删除新闻的功能 1.发布新闻/编辑新闻 功 ...

  4. 如何用Nuxt.js构建项目,SSR官网项目搭建流程

    SSR渲染 现在Vue,React,angular等三大框架引领的单页面应用大行其道,使用这单页面技术构建的项目比比皆是.这些流行的框架给我们带来的好处显而易见,不仅是开发,维护成本都大大地获得了优化 ...

  5. django项目支持外网访问--花生壳

    工具:花生壳 下载地址:花生壳客户端官方下载 - 贝锐花生壳官网 注册账号申请一个域名并配置: 连接成功后,外网就可以访问,例如我的项目访问地址就是: 接口自动化管理平台http://385163w8 ...

  6. html css js项目总结-官网

    项目介绍:官网展示 技术点:js,html,css,swiper轮播,pdjjs文档在页面预览加载 首页: 1布局 场景一.左边img 中间是两头虚线中间实线 右边文字结构如下:<div cla ...

  7. Django打造大型企业官网(五)

    4.6.切换轮播图的箭头样式以及显示和隐藏 templates/news/index.html <span class="arrow left-arrow">‹< ...

  8. 官网,一套代码如何运行多端?

    前段时间,做了公司一个项目的官网,就官网布局和效果来说,都是比较简单的,唯一一点不好的就是要兼容到ie8,所以很多css3的属性并不能用,只能老老实实按常规操作来. 为了一套代码可以在pc.移动端.i ...

  9. 小白必备的区块链项目分析攻略一:学会分辨“官网”

    24号日记|苏半月 前两天比较忙,耽误了学习日记的写作.不过没关系,这回我给大家带来一些硬货.还记得之前我说过的要给大家分享一些项目分析的经验和方法吗?本篇文章就教大家怎么分析一个项目. 这些经验都是 ...

最新文章

  1. javascript + css 利用div的scroll属性让TAB动感十足
  2. linux日志显示too many open files解决
  3. 团队-Forward团队一阶段互评
  4. 封装caffe-windows-master为动态链接库
  5. mysql group by_技术分享 | 回顾 MySQL 的 MTS
  6. 在线文件管理系统 下载地址
  7. Python2.7学习笔记-定义函数、filter/map/reduce/lambda
  8. c语言 如何调用void函数,在C中从main调用void*函数
  9. Playing Atari with Deep Reinforcement Learning 中文 讲解2
  10. 核酸检测小程序实战教程
  11. 安师大计算机专业排名多少,安师大的计算机专业怎么样
  12. Google Earth Engine——使用climata和Python从USGS获取流数据
  13. JavaScript中常用的的字符串方法总结+详解
  14. ArchiSteamFarmV3.0使用服务器steam云挂卡
  15. 经纬财富:巴中美联储措辞乐观 白银难突出重围
  16. Linux线程操作以及相关知识
  17. iphone5s怎么取消iphone系统更新如何关闭系统更新提醒
  18. 树莓派安装网易云音乐amd64(Exagear)
  19. 慧荣SM2246主控固态硬盘开卡一直pretest解决方法
  20. Altium 布线技巧

热门文章

  1. hibernate中lazy的使用
  2. Windebug专题
  3. (详细易懂)一篇文章让你读懂到底什么是Ajax
  4. 2005年5月23日星期一
  5. 学习java随堂练习-20220614
  6. 显卡刷bios变砖怎么办--关于矿卡,一些惊呆我的骚操作
  7. Pycharm 系统找不到指定的路径 报错!!
  8. 传入和传出电子邮件服务器,直接归档传入和传出的电子邮件【MDaemon篇】
  9. originos系统和鸿蒙系统哪个好用,originos系统适配机型_originos系统更新名单
  10. DOS命令字典..收藏