软件开发流程-路飞项目需求- pip永久换源-虚拟环境-路飞项目前后端创建-包导入-后端项目调整目录
软件开发流程-路飞项目需求- pip永久换源-虚拟环境-路飞项目前后端创建-包导入-后端项目调整目录
学习建议:
# 技术类博客
	cnblogs
    csdn(不推荐)
    掘金
    思否
# 找工作
	boos直聘
    拉钩
    智联
    猎聘
    脉脉:职场交流
    	-部门内推 领导
今日内容概要
- 1 软件开发流程
- 2 路飞项目需求
- 3 pip永久换源
- 4 虚拟环境
- 5 路飞项目前后端创建
- 6 包导入
- 7 后端项目调整目录
今日内容详细
1 软件开发流程
# 真正的企业里从软件立项到交付整个过程
	立项:确定公司要开发这个软件  公司高层
    	软件来源
        	产品经理设计出来的---> 互联网项目  互联网公司
            用户(医院 征服部门 企业)  传统软件公司
     需求分析
    	# 互联网项目
        	需求调研和分析:产品经理设计出来的
        # 传统软件
        	需求调研和分析:市场人员跟客户对接
            产品经理 开发人员跟客户对接 生成需求文档
   	 原型设计:产品经理
    	懂业务
        画出原型图:app 网页款
     分任务开发
    	UI设计
        	根据原型图设计 初图
        前端团队
        	前端拿着切图写代码(pc 小程序 移动端)
            mock数据:搞假数据 先把功能开发出来
        后端团队(我们后端从这里开始)
        	组里开会 需求文档和原型图 设置后台
            架构 数据库设计
            分任务开发:用户 商品板块
        测试(质量控制部)
        	普通功能测试
            接口测试
            压力测试 jmter
            自动化测试(python)
        联调测试
     项目上线(运维)
    持续维护项目
# 作为后端开发 公司里开发的流程
	开新项目 先开会 设计技术选型 数据库设计
    	产品 原型图做好了
        老大在项目管理平台(禅道类似)分配任务给我
        进入到管理平台就能看到任务 相关功能的原型图
        	需求 原型图 实现的效果
        开发---有不明白的需求 找产品经理对接---> 自测
        提交到版本仓库(git svn)
        管理平台点完成
        所有都开发完了分支合并
        跟前端联调
        发版
    如果是老项目
    	老大在项目管理平台(禅道类似)分配任务给我
        -进入到管理平台就能看到任务,相关功能的原型图
        	-需求,原型图,实现的效果
        -开发---有不明白的需求,找产品对接----》自测
        -提交到版本仓库(git,svn)
        -所有都开发完了,分支合并
        -跟前端联调
        -发版


2 路飞项目需求
# 关于路飞项目
	商城类
    知识付费项目
    前后端分离
    	主站vue
        后台管理 simpleui
# 需求
	首页功能
    	首页轮播图
        推荐课程
    用户功能
    	用户名密码登录
        手机号验证码登录
        发送手机验证码
        验证手机号是否注册过
        注册接口
        查看用户信息
        修改用户信息
    课程列表功能
    	课程列表接口 课程列表展示
        排序 过滤 分页
    课程详情
    	课程详情接口
        视频播放功能
        视频托管(第三方 自己平台) 文件托管
    下单功能
    	支付宝支付:生成支付链接 付款 回调修改订单状态
        购买成功功能
3 pip永久换源
# pip install django
	第三方开发者 开发了第三方模块 把模块打包传到了pypi上
    根据名字 把这个打包好的模块下载下来
    	在公司中可能不能上外网
        xx.whl(公司自己的pip库) 文件提前下好 再安装---> pip install 路径/xx.wsl
        已经有项目 模块装完了 想把这个项目所有的模块导出---> 导入到别的项目
        可以顺利上外网
        	下载会很慢 因为在国外
            国内有镜像站 建议用阿里云
# 配置本地镜像站为阿里云 以后只要pip install 就是去阿里云下载
	1 文件管理器 文件路径 地址栏敲:%APPDATA% 回车 快速进入 C:\Users\电脑用户\AppData\Roaming 文件夹中
    2 新建pip文件夹并在文件夹中新建pip.ini配置文件
    3 新增pip.ini配置文件内容
        [global]
        index-url = https://mirrors.aliyun.com/pypi/simple
        [install]
        use-mirrors =true
        mirrors =https://mirrors.aliyun.com/pypi/simple
        trusted-host =mirrors.aliyun.com
# 如果你想写个模块被库录用 你可以注册pypi账号 打包好 setup.py 传到pypi上 以后别人就可以搜索到你的模块并下载
	pip install 你的模块 就可以下载
    如果有兴趣,可以把自己写的模块,传上去
4 虚拟环境
# 虚拟环境是什么?
	有个系统环境 安装的python3.8 装模块 都装在解释器文件夹的 Lib\site-packages
    现在有两个django项目 一个基于django3写的 一个基于django2写的
    把这两个项目都打开 同时开发
    每个项目都用自己独立的环境 装的模块互不影响
    两种解决方案:
    	Virtualenv
        pipenv
# 如何安装和配置
	1 安装两个模块
    	pip install virtualenv  # 虚拟环境是它
        pip install virtualenvwrapper-win  # 对虚拟环境的加强 以后只需要简单的命令就可以使用和创建虚拟环境
    2 配置虚拟环境管理器工作目录
    	在环境变量中新建:WORKON_HOME: D:\Virtualenvs
        在D盘创建文件夹 以后新建的虚拟环境 都会在这个文件夹下
    3 去向python3的安装目录=> Scripts文件夹=> virtualenvwrapper.bat=> 双击
# 如何创建和使用虚拟环境
	-创建并进入到虚拟环境: 创建一个虚拟环境叫luffy,会放在D:\Virtualenvs
    	mkvirtualenv -p python3 luffy
    -cmd 窗口中带着虚拟环境名字,表示在虚拟环境中,以后安装的所有模块,都是给虚拟环境安装的
    -退出虚拟环境
    	deactivate
    -查看有哪些
    	workon
    -进入虚拟环境
    	workon luffy
    -删除虚拟环境
    	rmvirtualenv 虚拟环境名称
# 本地有了虚拟环境,pycharm使用虚拟环境
	-已有项目,配置虚拟环境如何做
    -新建项目,使用已有虚拟环境
		django-admin
        pycharm创建
# 了解 使用pycharm创建虚拟环境
	-新建项目,新建虚拟环境

5 路飞项目前后端创建
# 创建路飞后端
	创建路飞项目前 虚拟环境中先装好 django3.2.2
    选中虚拟环境 起名叫luffy_api
# 前端项目创建
	vue create luffy_city
6 包导入
# 模块和包的区别
	模块就是一个py文件
    包是一个文件夹下有__init__.py 里面有很多py文件
    以后下载第三方包 或者自己写包 如何导入
# python 导入包
	pycharm会把项目路径加入到环境变量 命令行中不会加入
    from的路径 需要从环境变量开始
    	安装的第三方模块 都在环境变量
        内置模块 os sys 也在环境变量中 可以直接导入
    在包内部 推荐使用相对导入
    	一旦使用相对导入 该文件 就不能以脚本形式运行了(不能右键运行)
        在同一个目录下的推荐使用相对导入
        不同目录下的推荐使用绝对导入
7 后端项目调整目录
# 调整目录后成
"""
├── luffy_api
	├── logs/				# 项目运行时/开发时日志目录 - 包
    ├── manage.py			# 脚本文件
    ├── luffy_api/      		# 项目主应用,开发时的代码保存 - 包
     	├── apps/      		# 开发者的代码保存目录,以模块[子应用]为目录保存 - 包
        ├── libs/      		# 第三方类库的保存目录[第三方组件、模块] - 包
    	├── settings/  		# 配置目录 - 包
			├── dev.py   	# 项目开发时的本地配置
			└── prod.py  	# 项目上线时的运行配置
		├── urls.py    		# 总路由
		└── utils/     		# 多个模块[子应用]的公共函数类库[自己开发的组件]
    └── scripts/       		# 保存项目运行时的脚本文件,小的测试脚本 - 文件夹,不提交到git上
"""
# 调整后运行不了
	-原因是 找不到配置文件了---》django项目运行,第一步就要加载配置文件
    -开发阶段:python manage.py runserver ---->找不到配置文件就报错了---》改manage.py
    	os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffy_api.settings.dev')
    -上线阶段:wsgi运行----》
        asgi.py
        wsgi.py
    	os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffy_api.settings.prod')
    -项目能运行
    - 创建app
    	-python manage.py startapp home 命令在哪执行,app就创建在哪
        -cd 到 apps路径下创建app
        	-python ../../manage.py startapp home
    - 注册app
    	-首先在app下的apps.py 中修改name  name = 'luffy_api.apps.home'
        -以后想直接写app名字,所以要吧apps的路径加入到环境变量,加载配置文件的一开始
        -在配置文件中把apps和小路飞路径加入到环境变量
        sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
        # 把BASE_DIR也加入到环境变量,以后直接从小路飞开始导起即可
        sys.path.insert(0, BASE_DIR)
    导入模块 编辑器爆红 爆红不一定是真的错
    	把加入的到环境变量的路径 右键 作为source root
from pathlib import Path
import os
import sys
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
# 将项目文件加入系统环境变量 方便使用
sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
sys.path.insert(0, BASE_DIR)
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'home',
    'user'
]

软件开发流程-路飞项目需求- pip永久换源-虚拟环境-路飞项目前后端创建-包导入-后端项目调整目录的更多相关文章
- 软件开发流程 Software development process
		软件开发流程(Software development process)即软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法.软件的总体结构设计和模块设计.编程和调试.程序联调和测试以 ... 
- 软件开发杂谈之从需求到上线---valen
		背景 IT已经成为当代企业必不可少的竞争手段,从无到有到标配,可以说以后不懂IT的就是文盲这句一点也不过,而软件开发是个复杂工程,零零碎碎各种理论工具和技巧,一言难尽. 本文意在言简意赅,简述软件开发 ... 
- Atitit.软件开发的非功能性需求attilax 总结
		Atitit.软件开发的非功能性需求attilax 总结 1. 运行环境约束:用户对软件系统运行环境的要求. 1 2. 兼容性 2 3. 7.6 数据库 database (imp by ati) ... 
- Atitit.软件开发的非功能性需求attilax 总结At
		Atitit.软件开发的非功能性需求attilax 总结 1. 运行环境约束:用户对软件系统运行环境的要求. 1 2. 兼容性 2 3. 7.6 数据库 database (imp by ati) ... 
- SoC的软件开发流程,主要包含一些Linux下的操作命令
		该笔记主要记录SoC的软件开发流程,主要包含一些Linux下的操作命令 1. 编写design file .c .h 2. 编写makefile 可执行文件名,交叉编译环境,compile fl ... 
- 今天学弟问我pip如何永久换源?
		pip如何永久换源 临时使用 我们在使用Python开发的时候,经常要下载第三方模块,最常用的方式就是直接pip install 模块名,但是默认是使用国外的源,从pypi仓库中查找目标模块,不管是网 ... 
- pip 安装更新卸载  pip/yum换源
		pip安装:sudo apt-get install python3-pip pip更新:sudo pip3 install --upgrade pip pip卸载:sudo apt-get remo ... 
- 一般软件开发流程和BBS表设计
		项目开发流程 需求分析 架构师+产品经理+开发组组长 和客户公司谈需求之前 ,事先需要想一下这个项目要怎么做 里面的坑点提前想好比较简单的解决方案 在跟客户谈的时候有意识的引导客户朝你已经想好的方案上 ... 
- pip&conda 换源
		PIP 各种可用源 清华源:https://pypi.tuna.tsinghua.edu.cn/simple 临时指定源 pip install -i https://pypi.tuna.tsingh ... 
- pip & conda 换源
		conda换源方法具体参考清华大学镜像站Anaconda 镜像使用帮助 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn ... 
随机推荐
- LeetCode_单周赛_327
			目录 6283. 正整数和负整数的最大计数 代码 6285. 执行 K 次操作后的最大分数 代码 6284. 使字符串总不同字符的数目相等 代码 6283. 正整数和负整数的最大计数 代码 直接遍历统 ... 
- 计算机网络基础08  Socket网络通信
			部分内容来自:https://www.jianshu.com/p/066d99da7cbd 1 七层网络架构 在解释socket之前,先了解下七层网络架构 https://www.cnblogs.c ... 
- 使用HtmlAgilityPack 爬取 国家统计局 区划和城乡划分代码
			HtmlAgilityPack:Html解析神器,根据url地址解析html页面内容. 项目引用HtmlAgilityPack.dll文件或者通过安装 nuget 包 HtmlAgilityPack ... 
- Centos7系统编译Hadoop3.3.4
			1.背景 最近在学习hadoop,此篇文章简单记录一下通过源码来编译hadoop.为什么要重新编译hadoop源码,是因为为了匹配不同操作系统的本地库环境. 2.编译源码 2.1 下载并解压源码 [r ... 
- HashSet()相关易错点
			package homework_;import java.util.HashSet;import java.util.Objects;/* * @author YAM */public class ... 
- JZOJ 5350. 【NOIP2017提高A组模拟9.7】陶陶摘苹果
			题目 分析 很神奇的事情又发生了!! 很容易想到设 \(f_{i,j}\) 表示考虑前 \(i\) 个区间,已选 \(j\) 个区间且必选第 \(i\) 时能覆盖到的最多苹果数 转移 \(O(n)\) ... 
- Json.stringfiy json未定义
			在文档的顶部添加 <!DOCTYPE html> 没有它,IE10是一个奇怪的兼容模式,许多"新"功能不可用,例如JSON.如果你任然需要使用早期版本的IE,你可以使用 ... 
- 06#Web 实战:可滑动的标签页
			实现效果图 本随笔只是记录一下大概的实现思路,如果感兴趣的小伙伴可以通过代码和本随笔的说明去理解实现过程.我的 Gitee 和 GitHub 地址.注意哦:这个只是 PC 上的标签页,手机端的没用,因 ... 
- CCProxy网络代理小试牛刀
			CCProxy可以完成两项大的功能:代理共享上网和客户端代理权限管理.只要局域网内有一台机器能够上网,其他机器就可以通过这台机器上安装的CCProxy来代理共享上网,最大程度的减少了硬件费用和上网费用 ... 
- 自定义StringByteLength
			using HKElectric.ESafety.Utilities; using System.ComponentModel.DataAnnotations; namespace HKElectri ... 
