zoukankan      html  css  js  c++  java
  • 12-6

    企业项目开发流程

    项目开发流程

    1. 需求分析

      架构师 和开发组组长 草拟一些项目的大致技术点和流程

      架构师 + 产品经理 + 开发组组长去客户公司听客户需求

      在跟客户聊的时候 你要有意识有目的引导客户朝着你之前已经想好的

      功能思路上去提需求

    2. 架构设计

      架构师(框架 语言 数据库 缓存数据库 表设计 拆分功能 项目的报价(参与开发人员的个数 一个人1000~2000))

    3. 分组开发

      开会(架构师组长会议) 分任务 按模块功能分的开会(小组会议) 组长在拆分功能 每个组员写几个小功能小组成员写代码 自己需要提前测试一下有没有bug

    4. 交付测试

      一些不是显而易见的bug如果是显而易见的bug 就需要扣你绩效

    5. 运维上线

      委托给你们公司帮忙上线帮忙维护
      交给对方公司

    BBS表设计

    先确定表名

    然后是表中的字段

    最后才是表关系

    1. 用户表

      利用auth_user表
      手机号
      头像
      注册时间	
      
      blog 	一对一个人站点表
      
    2. 个人站点表

      站点名称
      站点标题
      站点样式
      
    3. 文章标签表

      标签名
      			
      blog     一对多个人站点表
      
    4. 文章分类表

      分类名
      			
      blog     一对多个人站点表
      
    5. 文章表

      文章标题
      			文章简介
      			文章内容
      			文章发布时间
      			
      			blog      一对多个人站点表
      			tags      多对多文章标签表
      			category  一对多文章标签表
      			
      			
      			# 文章的点赞数  点踩数   评论数    数据库优化设计方案(*****)
      			up_num
      			down_num
      			comment_num
      			# 你只需要保证上面的三个普通字段跟对应的表中的数据同步更新即可
      
    6. 文章的点赞点踩表

      user_id          一对多用户表
      article_id       一对多文章表			
      is_up			 BooleanField	 
      
      
      user_id       article_id
      1				1
      1				2
      1				3
      2				1
      3				1
      4				1
      
    7. 文章的评论表

    user_id			一对多用户表
    article_id		一对多文章表			
    content			TextField()
    create_time
    自关联 			根评论子评论
    parent           跟自己所在的表外键关联  一对多
    
    
    id	user_id     article_id     parent_id
    1		1			1			
    2		2			1			1
    3		3			1			
    4		4			1			
    5		5			1			3
    6		1			1
    
    Userinfo表中的字段avatar = models.FileField(upload_to='avatar/',default='static/img/default.jpg')
    该字段你直接传文件即可   会自动将文件保存到avatar文件夹下  然后数据库里面存文件路径
    
    Blog表中的site_theme字段
    该字段存的是用户自己写的css文件路径
    
    Article表中 有数据库优化三个普通字段
    up_num = models.IntegerField(default=0)
    down_num = models.IntegerField(default=0)
    comment_num = models.IntegerField(default=0)
    
    外键字段
    category = models.ForeignKey(to='Category',null=True)
    blog = models.ForeignKey(to='Blog',null=True)
    tags = models.ManyToManyField(to='Tag',through='Article2Tag',through_fields=('article','tags'))
    

    数据库同步

    执行数据库迁移命令makemigrations,migrate

    注册功能

    需要利用内置对象 FileReader完成文件的读取操作

    $('#mdd').on('change',function ()
    

    获取用户上传的文件对象

    let MyFileReader = new FileReader()
    

    让文件阅读器 读取文件

     let fileObj = $(this)[0].files[0]
    

    将读取之后的文件的内容替换到img标签src属性中

    MyFileReader.readAsDataURL(fileObj)       //IO操作    异步
    

    等待文件阅读器读取完文件之后执行下面的代码

    MyFileReader.onload = function(){
    	$('#img').attr('src',MyFileReader.result)
    }
    

    提交按钮

    将用户输入的数据全部发送给后端 (普通的键值对 文件)

    不停的朝里面添加数据

    $('#submit').click(function () {
    	let MyFormData = new FormData()
    }
    

    普通键值对添加完毕 (利用form标签内部有一个自动序列化普通键值对方法)

    手动添加数据

    MyFormData.append('avatar',$('#mdd')[0].files[0])
    

    发送ajax请求

    发送文件一定要指定两个参数

    不要让浏览器处理你的数据

    processData:false,
    

    不要使用任何的编码 django能识别对象本身

    contentType:false
    

    利用回调函数 跳转到登录页面

    window.location.href = data.url
    

    index就是报错字段 obj就是错误信息 是数组的形式

    获取报错字段 手动拼接出该字段所对应的input框的id值

    let targetId = '#id_' + index;
    $(targetId).next().text(obj[0]).parent().addClass('has-error')
    

    input框获取焦点事件

    $('input').focus(function () {
            $(this).next().text('').parent().removeClass('has-error')
    
  • 相关阅读:
    一些C++11语言新特性
    项目管理计划应该包括哪些内容
    真相令人震惊!为什么越有钱的人,欠的钱越多?
    80后小伙返乡创业种植中药材,带领乡亲们脱贫致富
    Tableau
    知识点汇总
    决策树分析、EMV(期望货币值)
    信息系统项目管理师60天冲刺复习计划,2019下半年高项冲刺计划
    【系统分析师之路】系统分析师备考计划
    有一种规律:“劣币驱逐良币”,“坏人淘汰好人”(深度)
  • 原文地址:https://www.cnblogs.com/gfhh/p/12007158.html
Copyright © 2011-2022 走看看