路飞项目---day02(软件开发流程,路飞项目需求,pip永久换源,虚拟环境,路飞项目前后端创建,包导入注意问题,后端项目调整目录及修改对应配置,)
# 技术类博客
-cnblogs
-csdn (不推荐)
-掘金
-思否
--------------------------------------
# 找工作
-boos直聘
-拉钩
-智联
-猎聘
-脉脉:职场交流
-部门内推,领导
--------------------------------------
.
.
.
.
今日内容
1 软件开发流程
# 真正的企业里软件从立项到交付整个过程
-立项:确定公司要开发这个软件 公司高层
-软件来源
-产品经理设计出来的----》互联网项目 互联网公司
-用户(医院,政府部门,企业。。) 传统软件公司
-----------------------
-需求分析
# 互联网项目
-需求调研和分析:产品经理设计出来的
# 传统软件
-需求调研和分析:市场人员跟客户对接
-产品经理 ,开发人员跟客户对接,生成需求文档
-----------------------
-原型设计:产品经理
-懂业务
-画出原型图:app,网页款
-----------------------
-分任务开发
-UI设计
-根据原型图设计 切图
-前端团队
-前端拿着切图写代码(pc,小程序,移动端)
-mock数据:搞假数据,先把功能开发出来
-后端团队
-组里开会,需求文档和原型图,设计后台
-架构,数据库设计
-分任务开发:用户,商品板块
-测试(质量控制部)
-普通功能测试
-接口测试
-压力测试,jmeter
-自动化测试
-联调测试
-----------------------
-项目上线(运维)
-----------------------
-持续维护项目
-----------------------
# 作为后端开发,公司里开发的流程
-开新项目,先开会,设计技术选型,数据库设计
-产品,原型图做好了
-老大在项目管理平台(禅道)分配任务给我
-进入到管理平台就能看到任务,相关功能的原型图
-需求,原型图,实现的效果
-开发---有不明白的需求,找产品对接----》自测
-提交到版本仓库(git,svn)
-管理平台点完成
-所有都开发完了,分支合并
-跟前端联调
-发版
-如果是老项目
-老大在项目管理平台(禅道)分配任务给我
-进入到管理平台就能看到任务,相关功能的原型图
-需求,原型图,实现的效果
-开发---有不明白的需求,找产品对接----》自测
-提交到版本仓库(git,svn)
-所有都开发完了,分支合并
-跟前端联调
-发版
.
.
.
.
.
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--------双击一下
配置虚拟环境管理器工作目录,环境变量中新建
.
.
.
.
.
如何使用命令 创建和使用虚拟环境
pycharm能直接创虚拟环境,命令创建虚拟环境的作用是?
后期项目在linux里上线,项目要跑在虚拟环境里,所以也要创建虚拟环境
linux里创建虚拟环境,都是用命令来执行的
而且pycharm能直接创虚拟环境不通用,但是命令方式创建是通用的
---------------------------------
创建并进入到虚拟环境:
创建虚拟环境,会自动放在D:\Virtualenvs目录下
mkvirtualenv -p python38 虚拟环境名
# 此处的python38是要指定解释器的名字
cmd 窗口中带着虚拟环境名字,表示在虚拟环境中,
以后安装的所有模块,都是给虚拟环境安装的!!和系统的环境没有关系
退出虚拟环境
deactivate
查看有哪些虚拟环境
workon
进入虚拟环境
workon 虚拟环境名
删除虚拟环境
rmvirtualenv 虚拟环境名 # 或者直接去文件夹下删文件
在虚拟环境下,敲的命令,比如pip list 或者 python 用的都是虚拟环境的pip与虚拟环境的解释器!!!
.
.
.
.
.
本地有了虚拟环境,pycharm如何使用虚拟环境
-已有项目,配置虚拟环境如何做
-新建项目,使用已有虚拟环境如何做
pycharm创建项目
----------------------------------
已有项目,配置虚拟环境如何做
.
.
找到了系统中有的虚拟环境文件夹里面的解释器,
这样就可以将项目原来用的系统解释器,换成虚拟环境的解释器了!!!
可以这么理解,虚拟环境和虚拟环境的解释器是绑定的,
选择了虚拟环境的解释器,就是选择了虚拟环境
.
.
新建项目,使用已有虚拟环境如何做
.
.
使用pycharm创建虚拟环境
-新建项目,新建虚拟环境
使用pycharm 新建项目的时候,新建虚拟环境
.
.
.
.
.
.
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
目录调整后运行不了,报错 ,所以配置文件路径要改一下!!!
.
如果点绿色小按钮运行不了,但命令能运行
注意django3 好像运行项目的命令后面要带端口号才行 python manage.py runservr 8011
先删掉
.
再添加一下,就自动关联上了
.
.
asgi.py 与 wsgi.py文件里面要改一下,为了上线阶段用uwsgi来运行项目文件用的!!!
.
.
配置文件里面注册一下app,但是发现还是运行不了项目
.
因为系统自动生成的name 对的值不对,要手动改一下
或者最简单,根目录下创app,直接手动拖到apps下面就行了
.
.
但是想要注册app的时候,就只写app名home怎么办
在配置文件的里面最上面把apps包的路径加入到环境变量,
顺便再把项目小目录的路径也放到环境变量中,注意图片有问题
BASE_DIR是个对象需要用str转一下
.
.
解决导入句式飘红的问题,把加入到环境变量的路径,右键,做为source root
.
.
小补充 sys.argv 的作用
.
.
后端项目的目录调整操作总结
---------------------------------------
项目创建好之后,按照上面的推荐目录形式,调整目录结构
关键是 后面的配置要改一下
# 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换源
# 虚拟环境创建
# 创建出前后端项目
-后台调整目录
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY