django项目之官网需求分析实现
上一篇: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项目之官网需求分析实现相关推荐
- Django打造大型企业官网-项目部署
Django打造大型企业官网-项目部署 一.准备工作 1.在开发机上的准备工作 1)确认项目没有bug. 2)打开终端,进入虚拟环境,再 cd 到项目根目录下,执行命令:pip freeze > ...
- Django打造大型企业官网-项目实战(三)
Django打造大型企业官网-项目实战(三) 一.CRM 后台管理系统 前面我们使用的是 xadmin 后台管理系统,在使用中发现,在权限限制中,我们能实现不同等级的用户/管理(超级管理员/管理员/用 ...
- Django打造大型企业官网-项目实战(四)
Django打造大型企业官网-项目实战(四) 一.新闻相关功能 在项目实战三中,我们完成了新闻分类相关的一些功能,现在我们来完成新闻列表.发布新闻.编辑新闻.删除新闻的功能 1.发布新闻/编辑新闻 功 ...
- 如何用Nuxt.js构建项目,SSR官网项目搭建流程
SSR渲染 现在Vue,React,angular等三大框架引领的单页面应用大行其道,使用这单页面技术构建的项目比比皆是.这些流行的框架给我们带来的好处显而易见,不仅是开发,维护成本都大大地获得了优化 ...
- django项目支持外网访问--花生壳
工具:花生壳 下载地址:花生壳客户端官方下载 - 贝锐花生壳官网 注册账号申请一个域名并配置: 连接成功后,外网就可以访问,例如我的项目访问地址就是: 接口自动化管理平台http://385163w8 ...
- html css js项目总结-官网
项目介绍:官网展示 技术点:js,html,css,swiper轮播,pdjjs文档在页面预览加载 首页: 1布局 场景一.左边img 中间是两头虚线中间实线 右边文字结构如下:<div cla ...
- Django打造大型企业官网(五)
4.6.切换轮播图的箭头样式以及显示和隐藏 templates/news/index.html <span class="arrow left-arrow">‹< ...
- 官网,一套代码如何运行多端?
前段时间,做了公司一个项目的官网,就官网布局和效果来说,都是比较简单的,唯一一点不好的就是要兼容到ie8,所以很多css3的属性并不能用,只能老老实实按常规操作来. 为了一套代码可以在pc.移动端.i ...
- 小白必备的区块链项目分析攻略一:学会分辨“官网”
24号日记|苏半月 前两天比较忙,耽误了学习日记的写作.不过没关系,这回我给大家带来一些硬货.还记得之前我说过的要给大家分享一些项目分析的经验和方法吗?本篇文章就教大家怎么分析一个项目. 这些经验都是 ...
最新文章
- javascript + css 利用div的scroll属性让TAB动感十足
- linux日志显示too many open files解决
- 团队-Forward团队一阶段互评
- 封装caffe-windows-master为动态链接库
- mysql group by_技术分享 | 回顾 MySQL 的 MTS
- 在线文件管理系统 下载地址
- Python2.7学习笔记-定义函数、filter/map/reduce/lambda
- c语言 如何调用void函数,在C中从main调用void*函数
- Playing Atari with Deep Reinforcement Learning 中文 讲解2
- 核酸检测小程序实战教程
- 安师大计算机专业排名多少,安师大的计算机专业怎么样
- Google Earth Engine——使用climata和Python从USGS获取流数据
- JavaScript中常用的的字符串方法总结+详解
- ArchiSteamFarmV3.0使用服务器steam云挂卡
- 经纬财富:巴中美联储措辞乐观 白银难突出重围
- Linux线程操作以及相关知识
- iphone5s怎么取消iphone系统更新如何关闭系统更新提醒
- 树莓派安装网易云音乐amd64(Exagear)
- 慧荣SM2246主控固态硬盘开卡一直pretest解决方法
- Altium 布线技巧