• 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')
    
  • 相关阅读:
    legend3---2、网站的代码里面的/也是代表根目录
    legend3---PHP使用阿里云短信服务
    legend3---laravel验证码使用
    好用网站推荐
    The practice program of C on point
    Android自己定义组件系列【9】——Canvas绘制折线图
    网络流24题 之十四 孤岛营救问题 分层图
    关于安卓你不知道的6件事
    OpenStack_Swift源代码分析——Ring基本原理及一致性Hash算法
    Codeforces554D:Kyoya and Permutation
  • 原文地址:https://www.cnblogs.com/gfhh/p/12007158.html
Copyright © 2020-2023  润新知