路飞项目---day02(软件开发流程,路飞项目需求,pip永久换源,虚拟环境,路飞项目前后端创建,包导入注意问题,后端项目调整目录及修改对应配置,)

# 技术类博客
	-cnblogs
    -csdn (不推荐)
    -掘金
    -思否
--------------------------------------
# 找工作
	-boos直聘
    -拉钩
    -智联
    -猎聘
    -脉脉:职场交流
    	-部门内推,领导
--------------------------------------

.
.
.
.

今日内容

1 软件开发流程

# 真正的企业里软件从立项到交付整个过程

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



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

    -如果是老项目
        	-老大在项目管理平台(禅道)分配任务给我
            -进入到管理平台就能看到任务,相关功能的原型图
                -需求,原型图,实现的效果
            -开发---有不明白的需求,找产品对接----》自测
            -提交到版本仓库(git,svn)
            -所有都开发完了,分支合并
            -跟前端联调
            -发版

image
.
.
.
.
.

2 路飞项目需求

-------------------------

# 关于路飞项目
-商城类
    -知识付费项目
    -前后端分离
    -主站vue
    -后台管理  用的simpleui
-------------------------

# 需求
-首页功能
	-首页轮播图
	-推荐课程(没有讲)

-用户功能
	-用户名密码登录
	-手机号验证码登录
	-发送手机验证码
	-验证手机号是否注册过
	-注册接口
	-查看用户信息(没有)
	-修改用户信息(没有)

-课程列表功能
	-课程列表接口,课程列表展示
	-排序,过滤,分页

-课程详情
	-课程详情接口
	-视频播放功能
	-视频托管(第三方,自己平台) 文件托管

-下单功能
	-支付宝支付:生成支付链接,付款,回调修改订单状态
	-购买成功功能

.
.
.
.
.
.

3 pip永久换源

pip uninstall 模块名
就是把本地的python解释器里面lib文件夹下site-packages里面的对应的模块文件给删掉


# 第三方开发者,开发了第三方模块,把模块打包传到了pypi上

# 举例说明  pip3 install django   干的什么事
	-根据django名字,到pypi上把这个打包好的模块下载下来了



# 以下在公司中出现的情况
	-公司不能上外网
		-xx.whl 文件提前下好,再安装----》pip install 路径/xx.whl
		-已经有项目,模块装完了,想把这个项目所有的模块导出---》导入到别的项目

	-可以顺利上外网
		下载会很慢,因为在国外
		国内有些镜像站:建议用阿里云


--------------------------------------------
# 配置本地镜像站为阿里云,以后只要在cmd命令行里敲 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


----------------------------------------------
# 注意在上面配置好了以后,在pycharm里面的settings里面的下载模块,还是要把源换掉才行
# 不然在pycharm里面下载模块,还是国外的网上去下载!!!

----------------------------------------------
#  自己写个模块,就叫你的名字  ,注册pypi账号,打包好 setup.py  传到 pypi上,以后别人
	pip install 你的模块 就可以下载
    如果有兴趣,可以把自己写的模块,传上去

.
.
.
.
.

4 虚拟环境

# 虚拟环境是什么?
有个系统环境  安装的python3.8 ,装模块,都装在 解释器文件夹的Lib\site-packages


现在有两个django项目,一个基于django3 写的,一个基于django2 写的
-把两个项目都打开,同时开发
-每个项目都用自己独立的环境,装的模块相互不影响,怎么办?
-两种解决方案:
    Virtualenv     # 用的比较多
    pipenv

----------------------------------
----------------------------------

.
.

如何安装和配置虚拟环境

-1 安装两个模块  cmd 命令行执行命令
	pip3 install virtualenv    # 虚拟环境是它
	pip3 install virtualenvwrapper-win
# 该命令是对虚拟环境的加强,以后只需要简单的命令就可以使用和创建虚拟环境


-2 配置虚拟环境管理器工作目录
	-在环境变量中新建:WORKON_HOME: D:\Virtualenvs
	-在D盘创建Virtualenvs文件夹,以后新建的虚拟环境,都会在这个文件夹下


-3 去Python38的安装目录----Scripts文件夹下----
    -----virtualenvwrapper.bat--------双击一下

配置虚拟环境管理器工作目录,环境变量中新建
image
.
.
.
.
.

如何使用命令 创建和使用虚拟环境

pycharm能直接创虚拟环境,命令创建虚拟环境的作用是?
后期项目在linux里上线,项目要跑在虚拟环境里,所以也要创建虚拟环境
linux里创建虚拟环境,都是用命令来执行的

而且pycharm能直接创虚拟环境不通用,但是命令方式创建是通用的
---------------------------------

创建并进入到虚拟环境:

创建虚拟环境,会自动放在D:\Virtualenvs目录下
	mkvirtualenv -p python38 虚拟环境名
	# 此处的python38是要指定解释器的名字


cmd 窗口中带着虚拟环境名字,表示在虚拟环境中,
以后安装的所有模块,都是给虚拟环境安装的!!和系统的环境没有关系

退出虚拟环境
	deactivate

查看有哪些虚拟环境
	workon

进入虚拟环境
	workon 虚拟环境名

删除虚拟环境
	rmvirtualenv 虚拟环境名   # 或者直接去文件夹下删文件

在虚拟环境下,敲的命令,比如pip list 或者 python 用的都是虚拟环境的pip与虚拟环境的解释器!!!
image
.
.
.
.
.

本地有了虚拟环境,pycharm如何使用虚拟环境

	-已有项目,配置虚拟环境如何做

	-新建项目,使用已有虚拟环境如何做
		pycharm创建项目
----------------------------------

已有项目,配置虚拟环境如何做
image
.
image
.
找到了系统中有的虚拟环境文件夹里面的解释器,
这样就可以将项目原来用的系统解释器,换成虚拟环境的解释器了!!!
可以这么理解,虚拟环境和虚拟环境的解释器是绑定的,
选择了虚拟环境的解释器,就是选择了虚拟环境
image
image
.
.
新建项目,使用已有虚拟环境如何做
image

.
.

使用pycharm创建虚拟环境

	-新建项目,新建虚拟环境

使用pycharm 新建项目的时候,新建虚拟环境
image
.
.
.
.
.
.

5 路飞项目前后端创建

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

-----------------------------------
# 前端项目创建(注意前端项目创在哪,就先路径切换到哪,再输入创建项目的命令)
# 为了方便,最好项目的前端与项目后端放在一个目录下,所以先切到后端项目文件所在的目录下
# 再执行创建前端项目的命令
	vue create luffy_city

.
.
.
.
.

6 包导入

# 模块和包的区别
	-模块就是一个py文件
	-包是一个文件夹下有__init__.py文件,并且里面还有很多py文件

	-以后下载第三方包,或自己写包,如何导入

-----------------------------------------------------

# python 导入包
pycharm会把项目路径自动加入到环境变量中 ,命令行中不会加入

from 的路径,需要从环境变量下的路径开始!!!

	-安装的第三方模块,都在环境变量site-packages里面
	-内置模块 os,sys, 也在环境变量python38.zip里面,可以直接导入

在包内部,推荐使用相对导入
	-一旦使用相对导入,该文件,就不能以脚本形式运行了(不能右键运行)


-在同一个目录下的包导入推荐使用相对导入!!!
-不同目录下的包导入推荐使用绝对导入!!!

------------------------------------------------
main.py代码

import sys
print(sys.path)


from lqz import s2

if __name__ == '__main__':
    print('开始运行了')
-----------------------
s1.py代码
a = 10
-----------------------
s2.py代码
# from s1 import a  这样不能作为导入文件用

from .s1 import a    # 相对导入只能只为导入文件用,不能作为执行文件用了

# from lqz.s1 import a   绝对导入作为执行文件或导入文件都没有问题

print(a)

.
.
.
.
.
.

7 后端项目的目录调整


# 推荐的目录结构
"""

├── luffy_api
    ├── logs/		# 项目运行时/开发时日志目录 - 包
    ├── manage.py		# 脚本文件
    ├── luffy_api/		# 项目主应用,开发时的代码保存 - 包
        ├── apps/		# 开发者的代码保存目录,以模块[子应用]为目录保存 - 包
        ├── libs/		# 第三方类库的保存目录[第三方组件、模块] - 包
        ├── settings/		# 配置目录 - 包
            ├── dev.py	# 项目开发时的本地配置
            └── prod.py	# 项目上线时的运行配置
        ├── urls.py		# 总路由
        └── utils/		# 多个模块[子应用]的公共函数或类库[自己开发的组件]等
    └── scripts/	# 保存项目运行时的脚本文件夹,小的测试脚本或文件夹,不提交到git上

"""

----------------------------------------

# 目录调整后运行不了,报错
CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False.

-原因是 找不到配置文件了---》django项目运行,第一步就要加载配置文件

# 1 开发阶段:python manage.py runserver ---->找不到配置文件就报错了---》
	改manage.py文件里面的代码'luffy_api.settings' 变成'luffy_api.settings.dev'
	因为原来settings配置文件是在项目的小目录下的,
	现在被我们放到自己创的settings包下面去了,而且还把名字该成了dev.py
	所以配置文件路径要改一下!!!变成如下
	os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffy_api.settings.dev')

-------------------------------------------------
-------------------------------------------------

# 2 上线阶段:要用uwsgi 来运行  要改两个文件
	asgi.py   与    wsgi.py  文件


os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffy_api.settings')
要改成
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffy_api.settings.prod')

-------------------------------------------------------
-------------------------------------------------------

# 3 项目能运行阶段

    - 创建app
    	-python manage.py startapp home 命令在哪个路径下执行,app就创建在哪个路径下
    	直接创app会创到根路径下,但是我们现在想要的是创的app文件放在apps包下

    	所以 cd 到apps路径下 cd luffy_api/apps
因为已经切到了apps的路径下了,所以先要找到manage.py要用相对路径的方式找到manage.py的路径
    	-python ../../manage.py startapp home

    	或者直接在根目录下,直接创建app,然后直接拖到apps目录下去就行了,最简单!!!

------
    - 注册app
        -先到dev里面注册app的名字比如 'luffy_api.apps.home',
        -其次我们命令在apps目录下创的home,home包里面的apps.py里面的name='home'
        -不对,需要在home包下的apps.py中修改成  name = 'luffy_api.apps.home'
        -所以就有点烦了,建议直接在根目录下创建app,然后手动拖到apps包里面去
        -这样系统会自动修改成name = 'luffy_api.apps.home' 就方便了,
        -也不用先切apps目录下 python ../../manage.py startapp app名字
        -直接python manage.py startapp app名字  创app了


        但是这样注册还是太烦了,如果就想注册app的时候,就只写app名home怎么办
        在配置文件的里面最上面把apps包的路径加入到环境变量,
        这样加载配置文件的一开始就会执行添加环境变量的操作,注册的时候直接写项目名就没问题了
        import os
        import sys
        path = os.path.join(BASE_DIR, 'apps')
        sys.path.append(path)
        顺便把项目根目录下的小目录的路径也放到环境变量中,
        这样以后导apps包下的文件或导项目小目录下的文件都可以直接import 文件名了!!!
        sys.path.append(BASE_DIR)


        导入模块,导入句式会飘红,飘红不一定是真的有问题,运行一下看看就知道了
        怎么解决导入句式飘红的问题?
        把加入到环境变量的路径,右键,做为source root



目录调整后运行不了,报错 ,所以配置文件路径要改一下!!!
image
.
如果点绿色小按钮运行不了,但命令能运行
注意django3 好像运行项目的命令后面要带端口号才行 python manage.py runservr 8011
先删掉
image
.
再添加一下,就自动关联上了
image
.
.
asgi.py 与 wsgi.py文件里面要改一下,为了上线阶段用uwsgi来运行项目文件用的!!!
image
.
.
配置文件里面注册一下app,但是发现还是运行不了项目
image
.
因为系统自动生成的name 对的值不对,要手动改一下
image
或者最简单,根目录下创app,直接手动拖到apps下面就行了
.
.
但是想要注册app的时候,就只写app名home怎么办
在配置文件的里面最上面把apps包的路径加入到环境变量,
顺便再把项目小目录的路径也放到环境变量中,注意图片有问题
image
BASE_DIR是个对象需要用str转一下
image
.
.
解决导入句式飘红的问题,把加入到环境变量的路径,右键,做为source root
image
.
.
小补充 sys.argv 的作用
image
.
.

后端项目的目录调整操作总结

---------------------------------------

项目创建好之后,按照上面的推荐目录形式,调整目录结构
关键是 后面的配置要改一下

# 1. 改manage.py文件里面的代码'luffy_api.settings' 变成'luffy_api.settings.dev'

# 2. asgi.py与wsgi.py文件里
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffy_api.settings')
    要改成
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffy_api.settings.prod')

# 3. 创建app 直接在根目录下,直接创建app,python manage.py startapp app名字
     创app然后直接拖到apps目录下去就行了

# 4. 注册app  dev里面注册app的名字比如 'luffy_api.apps.home',

# 5. apps包的路径 与 项目小目录的路径 放到环境变量中

# 6. 把加入到环境变量的路径,右键,做为source root  解决导入句式飘红问题!!!

---------------------------------

.
.
.
.

作业

# pip换源
# 虚拟环境创建
# 创建出前后端项目
	-后台调整目录

posted @   tengyifan  阅读(155)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示