文章目录
项目开发基础概念
企业的web项目类型
- 商城
1.1 B2C 直销商城 商家与会员直接交易 ( Business To Customer )
1.2 B2B 批发商城 商家与商家直接交易
1.3 B2B2C 购物平台 商家和会员在另一个商家提供的平台上面进行交易
1.4 C2B 定制商城 会员向商家发起定制商品的需求,商家去完成。
1.5 O2O 线上线下交易平台
1.6 C2C 二手交易平台 - 门户网站[企业站和门户站]
- 社交网络
- 资讯论坛
- 内部系统[OA]
- 个人博客
- 内容收费站
企业项目开发流程
立项申请阶段
通常公司内部要研发一款软硬件的产品之前,都要经过市场评估和调研分析,产生一份产品项目立项报告给公司。
-
产品项目立项报告一般包含以下内容:
- 项目概述
- 需求市场
- 需求分析和项目建设的必要性
- 业务分析
- 总体建设方案
- 项目风险和风险管理
- 可行性分析阶段
环境搭建
创建虚拟环境
mkvirtualenv luffy
如果自己的开发机子中存在多个版本的python,则可以指定解析器的版本
mkvirtualenv luffy -p python3
相关命令复习
创建虚拟环境: mkvirtualenv 虚拟环境名称
创建虚拟环境(指定python版本): mkvirtualenv -p python3 虚拟环境名称
查看所有虚拟环境: workon+2次tab键
使用虚拟环境: workon 虚拟环境名称
退出虚拟环境: deactivate
删除虚拟环境(必须先退出虚拟环境内部才能删除当前虚拟环境):
rmvirtualenv 虚拟环境名称
其他相关命令:
查看虚拟环境中安装的包: pip freeze 或者 pip list
收集当前环境中安装的包及其版本: pip freeze > requirements.txt
在部署项目的服务器中安装项目使用的模块: pip install -r requirements.txt
依赖包安装
pip install django -i https://pypi.douban.com/simple/
pip install djangorestframework -i https://pypi.douban.com/simple/
pip install PymySQL -i https://pypi.douban.com/simple/
pip install Pillow -i https://pypi.douban.com/simple/
pip install django-redis -i https://pypi.douban.com/simple/
使用git管理代码版本
本项目使用git管理项目代码,代码库放在gitee码云平台。(注意,公司中通常放在gitlab私有服务器中)
Git 的诞生
2005 年 4 月3 日,Git 是目前世界上最先进的分布式版本控制系统(没有之一)
作用:源代码管理
为什么要进行源代码管理?
- 方便多人协同开发
- 方便版本控制
git与svn区别
SVN 都是集中控制管理的,也就是有一个中央服务器,大家都把代码提交到中央服务器,而
git 是分布式的版本控制工具,也就是说没有中央服务器,每个节点的地位平等。
SVN:
Git:
Git工作区、暂存区和版本库:
- 工作区介绍
就是在你本要电脑磁盘上能看到的目录。 - 暂存区介绍
一般存放在.git
目录下的index
文件(.git/index
) 中,所以我们把暂存区有时也叫作索引。 - 版本库介绍
工作区有一个隐藏目录.git
,这个不算工作区,而是Git的版本库。git中的head/master
是分支,是版本库。
git项目仓库的本地搭建
cd进入到自己希望存储代码的目录路径,并创建本地仓库.git
新创建的本地仓库.git是个空仓库
cd 目录路径
git init gitdemo # 如果没有声明目录,则自动把当前目录作为git仓库
配置用户名和邮箱
git config --global user.name 'lisi'
git config --global user.email 'lisi@163.com'
查看仓库状态
git status
git status –s 简约显示
- 红色表示新建文件或者新修改的文件,都在工作区.
- 绿色表示文件在暂存区
- 新建的login.py文件在工作区,需要添加到暂存区并提交到仓库区
添加文件到暂存区
# 添加项目中所有文件
git add .
或者
# 添加指定文件
git add login.py
提交到版本库
git commit -am "版本描述"
手动删除文件
手动操作删除 或者 在命令行下 使用rm 文件名
删除 都是表示在工作区删除.
现在你有两个选择:
- 一是确实要从版本库中删除该文件,那就用命令
git rm 文件名
删掉,并且git commit
rm test.txt
git rm test.txt
git commit -m "remove test.txt"
- 另一种情况是删错了,因为版本库里还有呢,所以可以使用
git checkout 文件名
很轻松地把误删的文件恢复到最新版本
rm test.txt
git checkout -- test.txt
git checkout
其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。注意:从来没有被添加到版本库就被删除的文件,是无法恢复的!
版本删除
如果使用git rm 文件名
, 这种操作属于暂存区删除,这种删除无法直接git checkout 文件名
来还原.
如果直接执行git checkout
命令,则报错
git rm 文件名
如果要还原在暂存区中删除的文件,必须先执行 git reset head
查看历史版本[查看日志]
git log 或者 git reflog
过滤查看日志
git log –p
退出按【q】键
ctrl+f向下分页
ctrl+b 向上分页
显示指定日期之后的日志 git log --after '2018-11-6'
显示指定日期之前的日志 git log --before '2018-11-6'
指定显示指定开发者的日志 git log --author 'lisi'
在gitee平台创建工程
公司一般都会有自己的代码仓库,一般都是自己搭建,也有使用第三方提供代码管理平台。
常用的代码管理平台:github、gitee(码云)
如果公司自己搭建的代码管理平台,gitlab框架
创建私有项目库
克隆项目到本地
git clone 仓库地址
注意,如果当前目录下出现git仓库同名目录时,会克隆失败。
git提交
git add 代码目录 # 添加代码到上传队列
git status # 查看当前项目的版本状态
git commit -m '添加项目代码' # 提交代码到本地仓库, -m 表示本次提交的描述
# 如果没有设置个人信息,则需要再提示以后设置一番,再次执行git commit 这段命令
git config user.email "271450260@qq.com"
git config user.name "soyamilk"
设置当前git远程仓库的地址,并推送代码版本到远程仓库
git remote add origin https://gitee.com/mooluo/luffycity.git
git push -u origin master
如果推送代码,出现以下提示: git pull ....
,则表示当前本地的代码和线上的代码版本不同.
-
把线上的代码执行以下命令,拉取到本地,进行同步
git pull
-
根据提示,移除多余的冲突的文件,也可以删除.
完成这些步骤以后,再次add
,commit
,push
即可.
提交到gitee
上面创建好的本地项目提交到gitee码云上面
# .表示当前目录下所有的文件或目录提交到上传队列[上传队列也叫"暂存区"]
git add .
# 把本地上传队列的代码提交到本地仓库
git commit -m "项目初始化搭建"
# 给本地的git版本控制软件设置项目的远程仓库地址
git remote add origin https://gitee.com/mooluo/luffycity.git
# 提交代码给远程仓库
git push -u origin master
扩展:
- 通过 git status 可以查看当前项目的代码版本状态
- 通过 git reflog 可以查看代码版本日志[简单格式]
- 通过 git log 可以查看代码版本日志[详细格式]
最终,成功提交了代码版本到gitee平台。效果:
上面虽然成功移交了代码版本,但是一些不需要的文件也被提交上去了。
所以,我们针对一些不需要的文件,可以选择从代码版本中删除,并且使用.gitignore
把这些垃圾文件过滤掉。
git rm 文件 # 删除单个文件
git rm -rf 目录 # 递归删除目录
# 以下操作建议通过ubuntu的终端来完成,不要使用pycharm提供,否则删除.idea还会继续生成。
git rm -rf .idea
git rm db.sqlite3
# 注意,上面的操作只是从项目的源代码中删除,但是git是不知情的,所以我们需要同步。
git add .
git commit -m "删除不必要的文件或目录"
git push -u origin master
使用.gitignore把一些垃圾文件过滤掉。
vim .gitignore
./idea
./idea/*
./git
./db.sqlite3