软件开发流程

# 真正的企业里软件从立项到交付整个过程
	-立项:确定公司要开发这个软件   公司高层
    	-软件来源
        	-产品经理设计出来的----》互联网项目      互联网公司
            -用户(医院,政府部门,企业。。)          传统软件公司
    -需求分析
        # 互联网项目
            -需求调研和分析:产品经理设计出来的
        # 传统软件
            -需求调研和分析:市场人员跟客户对接
    		-产品经理 ,开发人员跟客户对接,生成需求文档
	-原型设计:产品经理 
		-懂业务
        -画出原型图:app,网页款
    -分任务开发
    	-UI设计
        	-根据原型图设计 切图
    	-前端团队
            -前端拿着切图写代码(pc,小程序,移动端)
            -mock数据:搞假数据,先把功能开发出来
        -后端团队
        	-组里开会,需求文档和原型图,设计后台
        	-架构,数据库设计
            -分任务开发:用户,商品板块
        -测试(质量控制部)
        	-普通功能测试
            -接口测试
            -压力测试,jmeter
            -自动化测试
        -联调测试
        
    -项目上线(运维)
    
    -持续维护项目


# 作为后端开发,公司里开发的流程
	-开新项目,先开会,设计技术选型,数据库设计
    	-产品,原型图做好了
        -老大在项目管理平台(禅道)分配任务给我
        -进入到管理平台就能看到任务,相关功能的原型图
        	-需求,原型图,实现的效果
        -开发---有不明白的需求,找产品对接----》自测
        -提交到版本仓库(git,svn)
        -管理平台点完成
        -所有都开发完了,分支合并
        -跟前端联调
        -发版
    
    -如果是老项目
        	-老大在项目管理平台(禅道)分配任务给我
            -进入到管理平台就能看到任务,相关功能的原型图
                -需求,原型图,实现的效果
            -开发---有不明白的需求,找产品对接----》自测
            -提交到版本仓库(git,svn)

            -所有都开发完了,分支合并
            -跟前端联调
            -发版

项目需求

# 关于路飞项目
	-商城类
    -知识付费项目
    -前后端分离
    	-主站vue
        -后台管理 simpleui
        
        
# 需求
	-首页功能
    	-首页轮播图
        -推荐课程(自己增加)
	-用户功能
    	-用户名密码登录
        -手机号验证码登录
        -发送手机验证码
        -验证手机号是否注册过
        -注册接口
        -查看用户信息(自己增加)
        -修改用户信息(自己增加)
    -课程列表功能
		-课程列表接口,课程列表展示
    	-排序,过滤,分页
    -课程详情
		-课程详情接口
    	-视频播放功能
        -视频托管(第三方,自己平台) 文件托管
    -下单功能
		-支付宝支付:生成支付链接,付款,回调修改订单状态
   		-购买成功功能

Python-pip永久换下载源

# pip3 install django
	-第三方开发者,开发了第三方模块,把模块打包传到了pypi上
    -根据名字,把这个打包好的模块下载下来了
    -以下在公司中出现的情况
    	-公司不能上外网
          -xx.whl 文件提交下好,再安装----》pip install 路径/xx.whl
          -已经有项目,模块装完了,想把这个项目所有的模块导出---》导入到别的项目
     	-可以顺利上外网
        	下载会很慢,因为在国外
            国内有些镜像站:建议用阿里云
# 配置本地镜像站为阿里云,以后只要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 你的模块 就可以下载
    如果有兴趣,可以把自己写的模块,传上去
            

虚拟环境

# 虚拟环境是什么?
	-有个系统环境  安装的python3.8 ,装模块,都装在 解释器文件夹的Lib\site-packages
    -现在有两个django项目,一个基于django3 写的,一个基于django2 写的
    -把两个项目都打开,同时开发
    -每个项目都用自己独立的环境,装的模块相互不影响
    -两种解决方案:
    	Virtualenv
        pipenv
        
        
# 如何安装和配置
	-1 安装两个模块
    	pip3 install virtualenv    # 虚拟环境是它
		pip3 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创建虚拟环境
	-新建项目,新建虚拟环境

项目前后端创建

# 创建路飞后端
	-创建路飞项目前,在虚拟环境中先装好 django 3.2.2
    -选中虚拟环境,起名叫luffy_api
    
    
# 前端项目创建
	vue create luffy_city

python包导入

# 模块和包的区别
	-模块就是一个py文件
    -包是一个文件夹下有__init__.py,里面有很多py文件
    
    -以后下载第三方包,或自己写包,如何导入
    
    
    
    
# python 导入包
	- pycharm会把项目路径加入到环境变量 ,命令行中不会加入
	- from 的路径,需要从环境变量开始
    	-安装的第三方模块,都在环境变量
        -内置模块 os,sys, 也在环境变量中,可以直接导入
    - 在包内部,推荐使用相对导入
    	-一旦使用相对导入,该文件,就不能以脚本形式运行了(不能右键运行)
        -在同一个目录下的推荐使用相对导入
        -不同目录下的推荐使用绝对导入

后端项目目录调整

# 调整目录后成
"""
├── 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')
    -上线阶段:uwsgi运行----》
        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