项目开发流程&项目架构

1. 软件开发的一般流程

1. 需求分析及确认:
    由需求分析工程师与客户确认甚至挖掘需求。输出需求说明文档。
2. 概要设计及详细设计:
    开发对需求进行概要设计,包括系统的基本处理流程,组织结构、模块划分、接口设计、数据库结构设计等。然后在概要设计的基础上进行详细设计。详细设计中描述实现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系,需要说明软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,以便进行编码和测试。基本达到伪代码的层面。 (原型图)
3. 编码:
    根据详细设计文档进行编码。在实际的项目开发中,编码是占时间最少的。
    
4. 测试:
    一般有专业测试团队进行测试。

5. 发布或上线:
    提供各种文档,比如杀毒软件扫描文档,安装手册,操作指南等一系列文档资料打包与程序一起发布。当然后续还会有验收和维护等操作。

 

2. 企业常见开发模式

 
1.瀑布模型式:
    瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求分析、设计、编码、集成、测试、维护的步骤顺序进行。瀑布式的主要的问题是它的严格分级导致的自由度降低,项目早期即作出承诺导致对后期需求的变化难以调整,代价高昂。瀑布式方法在需求不明并且在项目进行过程中可能变化的情况下基本是不可行的。

2.迭代式开发 (目前公司用的较多的开发模式)
    每次只设计和实现这个产品的一部分;
    逐步逐步完成的方法叫迭代开发;
    每次设计和实现一个阶段叫做一个迭代.
    在迭代式开发方法中,整个开发工作被组织为一系列的短小的、
    固定长度(如3周)的小项目,被称为一系列的迭代。
    每一次迭代都包括了需求分析、设计、实现与测试。

3.敏捷开发 (比较热门的开发模式)
    和迭代式开发类似,敏捷开发的周期可能更短,并且更加强调队伍中的高度协作。一个小功能叫做一个story。开发人员要完成stroy文档的编写。

 

3, 爱鲜蜂项目架构搭建

​ 项目效果: http://60.205.181.47

3.1 项目目录结构

3.2 创建项目

 
django-admin startproject AXF
 

3.3 创建App

单独打开AXF项目, 选择运行环境, 并创建App
python manage.py startapp App
 

3.4 项目配置

打开settings.py进行如下配置
1,设置允许主机为所有, ALLOWED_HOSTS = ["*"]
2,在INSTALLED_APPS中注册App 
3,  在项目根目录下创建templates目录,并在settings.py中TEMPLATES给DIRS添加路径
4,  在mysql中创建新数据库axf, 并配置数据库为mysql, 
    DATABASES = {    
        'default': {        
            'ENGINE': 'django.db.backends.mysql',       
            'NAME': 'axf',       
            'HOST': '127.0.0.1',        
            'PORT': '3306',        
            'USER': 'root',        
            'PASSWORD': 'root',    
        }
    }
5,  设置语言为中文:
    LANGUAGE_CODE = 'zh-hans'
6,  设置时区:
    TIME_ZONE = 'Asia/Shanghai'
7,  配置静态文件和媒体文件目录
    7.1 在根目录下创建static目录, 并在static目录中创建uploads目录
    7.2 在setting.py中配置
        STATICFILES_DIRS = [
            os.path.join(BASE_DIR, 'static'), 
        ]
        MEDIA_ROOT = os.path.join(BASE_DIR, 'static/uploads')

 

3.5 目录结构

static目录
根据项目需求在static目录中创建以下目录:
    应用目录app
    样式目录css
    字体目录fonts
    图片目录img
    脚本文件目录js
    媒体文件目录uploads
 且在app目录下针对每个功能模块分别创建以下目录,分别存放每个功能模块的静态文件
    首页home
    闪购market
    购物车cart
    我的mine
 
templates目录
根据项目需求在templates中创建以下目录和文件, 分别存放每个功能模块的模板
    首页home
    闪购market
    购物车cart
    我的mine
    基础模板: base.html 
    主体模板: base_main.html
 

3.6 App配置

在App中创建并配置urls.py文件,并配置好工程urls.py的路由规则
 

3.7 编写代码

 
此处省略一万行代码...
 

3.8 复制虚拟环境中的包

在旧环境中使用:pip freeze > a.txt
在新环境中使用:pip install -r a.txt
 

4. Swiper的使用

​ Swiper官网地址: http://www.swiper.com.cn/

http://www.swiper.com.cn/usage/index.html

Django (九) 项目开发流程&项目架构的更多相关文章

  1. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_1-2.中大型公司里面项目开发流程讲解

    笔记 2.中大型公司里面项目开发流程讲解     简介:讲解一个项目如何从零到上线,经历过怎样的步骤和流程                  1.一个中大型项目的开发流程,从需求调研到项目上线    ...

  2. Python基础之模块:7、项目开发流程和项目需求分析及软件开发目录

    一.项目开发流程 1.项目需求分析 明确项目具体功能: 明确到底要写什么东西,实现什么功能,在这个阶段的具体要询问项目经理和客户的需求 参与人员: 产品经理.架构师.开发经理 技术人员主要职责: 引导 ...

  3. 使用.NET MVC框架项目开发流程(项目开发流程)

    MVC项目开发流程 整理需求,进行需求分析.项目设计. 整理数据项,建数据库做前期准备,并整理字典. 建立所需数据库表和视图和模型. 页面实现其初步功能(跳过逻辑后台代码),只是实现页面之间的跳转以及 ...

  4. 【CC2530入门教程-01】IAR集成开发环境的建立与项目开发流程

    [引言] 本系列教程就有关CC2530单片机应用入门基础的实训案例进行分析,主要包括以下6部分的内容:1.CC2530单片机开发入门.2.通用I/O端口的输入和输出.3.外部中断初步应用.4.定时/计 ...

  5. K2项目开发流程

    (自己的学习资料) K2项目开发流程: 1.在VS2013中设计流程,并在K2 Workspce中测试流程 首先是新建新建一个k2的Process文件..kprx后缀. 在里面创建所需要的流程.由于我 ...

  6. 覃超:Facebook的项目开发流程和工程师的绩效管理机制

    覃超:Facebook的项目开发流程和工程师的绩效管理机制 http://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2650992350&am ...

  7. IT项目开发流程

    项目开发流程: 一.需求分析:相关系统分析员向用户初步了解需求,然后用相关的工具软件列出要开发的系统的大功能模块,每个大功能模块有哪些小功能模块,对于有些需求比较明确相关的界面时,在这一步里面可以初步 ...

  8. Java高级项目实战之CRM系统01:CRM系统概念和分类、企业项目开发流程

    1. CRM系统介绍 CRM系统即客户关系管理系统, 顾名思义就是管理公司与客户之间的关系. 是一种以"客户关系一对一理论"为基础,旨在改善企业与客户之间关系的新型管理机制.客户关 ...

  9. Git多人项目开发流程演练

    1. 前言 本文利用 GitHub 平台进行一个多人项目开发流程的演练,以加深课上所学内容. 参考文献:五⼤场景玩转 Git,只要这一篇就够了! 2. 初始化项目 2.1 新建远程项目 一个多人项目通 ...

随机推荐

  1. CALayer的隐式动画

    CALayer的使用 在我的理解中CALayer就是iOS中利用图层精简非交互式绘图.那么那些核心动画类.也就是变化图层的非交互式绘制规则而已.其中的本质就是将CALayer中的内容转化为map图.从 ...

  2. 【bzoj2588】Count on a tree 主席树

    这题给人开了个新思路. 原本构造一个序列的主席树,是这个位置用上个位置的信息来省空间,树上的主席树是继承父亲的信息来省空间. 此题若带修改怎么办? 若对某个点的权值做修改,则这个点的子树都会受影响,想 ...

  3. AttributeError: module 'tensorflow' has no attribute 'sub'

    官方的例子:运行之后出现以下错误 # 进入一个交互式 TensorFlow 会话. import tensorflow as tf sess = tf.InteractiveSession() x = ...

  4. BestCoder10 1001 Revenge of Fibonacci(hdu 5018) 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5018 题目意思:给出在 new Fibonacci 中最先的两个数 A 和 B(也就是f[1] = A ...

  5. linux系统配置之网络配置(centos)

    CentOS---网络配置详解 一.配置文件详解在RHEL或者CentOS等Redhat系的Linux系统里,跟网络有关的主要设置文件如下: /etc/host.conf         配置域名服务 ...

  6. Chapter2——如何分析Android程序

    前几天买了<Android软件安全与逆向分析>这本书,决定在这里记一些笔记. 第一章介绍了如何搭建环境,此处略去:第二章开始讲分析Android程序. 下面按顺序记录关键内容. ----- ...

  7. 初学Java(一)

    基本语法: 编写Java程序时,应注意以下几点: 1.大小写敏感:java是大小写敏感的,这就意味着标识符Hello与hello是不同的. 2.类名:对于所有的类来说,类名的首字母应该大写.如果类名由 ...

  8. 通用双向链表的设计(参考Linux系统中的实现)

    通常我们设计设计链表都是将数据域放在里面,这样每次需要使用链表的时候都需要实现一个链表,然后重新实现它的相关操作,这里参考Linux系统中的设计实现了一个通用的双向链表,只需要在你的结构里面有一个这个 ...

  9. python虚拟环境管理包virtualenvwrapper

    1.打开cmd 2.安装virtualenvwrapper pip install virtualenvwrapper-win 3.配置虚拟环境的位置 新建系统变量默认在c盘 4.新建虚拟环境 mkv ...

  10. 文本编辑器[notepad++] :一些快捷键

    资源来自网络收集. Ctrl+C 复制 Ctrl+X 剪切 Ctrl+V 粘贴 Ctrl+Z 撤消 Ctrl+Y 恢复 Ctrl+A 全选 Ctrl+F 键查找对话框启动 Ctrl+H 查找/替换对话 ...