本项目,我们会尽量模拟真实web开发场景来开发项目,让我们体验在开发团队中工作一般的快感!
开发流程图如下图所示:
本项目主要完成一个个人新闻博客类网站,用于知识分享,交友互动等
实现在线播放视频功能,用于福利课视频展示等。
实现相关资源共享,如课件笔记等。
使用流行的elasticsearch搜索引擎框架,实现网站资源快速搜索定位功能。
前后端部分分离的开发模式
在前后端分离的应用模式中,我们通常将后端开发的每个视图都称为一个接口,或者API,前端通过访问接口来对数据进行增删改查。
对应的数据交互如下图 :
html + css + js + jquery(ajax)
Django2.1 + Django restframework(一种设计风格/规范) + mysql + redis + celery(可能会拓展) + elaticsearch + nginx + uwsgi
在我们写毕业论文时可能会遇到,多次修改之后的论文命名方式:
论文_改.doc、论文_改改.doc、论文_改改改.doc、论文_改改改改.doc、论文_改改改改再改.doc、论文_改改改改再改TM不改了.doc
Git是分布式管理系统。服务端和客户端都有版本控制功能,都能进行代码的提交,合并,修改
git --version
创建一个文件夹用于存放项目文件(myporject)
新建本地仓库
cd ~/myproject/
# 初始化
git init
# 会创建一个.git的隐藏文件,关于版本控制的文件都存放在这里,绝对不要改动
配置个人信息
# 配置全局信息(怎样设置无所谓,因为不需要使用;一台电脑设置一下即可!)
git config --global user.name 'cool'
git config --global user.email '[email protected]'
# 配置信息会保存在家目录下
~/.gitconfig
# 配置本项目个人信息(注意:一定要认真设置,和我们远程提交的终端设置的要一模一样,不然会提交失败;而且每搞一个项目都要配置一下哦!比如:咱后面会上传到码云到!)
git config user.name 'cool2'
git config user.email '[email protected]'
# 配置信息存储在当前目录下的.git/config下
创建好了本地仓库,就准备开始开发了。
在项目文件加下创建readme.txt文件,输入以下内容。(注意:现在这个txt文件处于工作区中)
这是一个git学习的项目。
使用命令git status可以发现,此txt文件标红,意思就是我们需要使用git add命令将其提交:
将文件添加到代码库分两步
git commit命令的-m参数后输入的内容是提交说明。命令执行成功后显示几个文件被改动,加了多少行。每提交一次就会生成一个版本。
按照这个操作流程,修改readme.txt内容如下
这是一个git学习的项目。
千里之行始于脚下。
git add . 可以一次性把当前目录中所有有改动的文件都添加到暂存区。
小插曲:因为编码方式的不同可能会出现乱码。
解决方法:
打开你的终端,依次输入以下命令:
$ git config --global core.quotepath false # 设置 git status utf-8编码
$ git config --global gui.encoding utf-8 # 设置Git GUI界面utf-8编码
$ git config --global i18n.commit.encoding utf-8 #设置commit信息utf-8编码
$ git config --global i18n.logoutputencoding utf-8 # 设置输出 log utf-8 编码
辛勤的工作一段时候,我们提交了很多次了,有很多的版本,怎么查看这些提交记录呢?
git log (只能查看历史版本)
git reflog (可以查看所有版本!)
git reflog可以查看所有分支的所有操作记录(包含已删除的commit记录)。
运行git status命令会显示当前工作区,暂存区,仓库的状态。当工作区的所有代码都提交到仓库,并和仓库保持一致时会显示:
On branch master
nothing to commit, working tree clean
一旦有修改,git status命令会显示改动的文件,以及你应该怎么提交这些修改。
要实现多人协作分工,就需要git服务端。对于我们学习来说,自己去搭建一个服务端太费事,再说你写的代码也不是啥国家战略秘密,不用担心给别人看到了。前文提到了github网站,它就是一个git服务端,最重要的是不要钱,很多开源项目都托管在它的上面了。但是它的服务器在境外,国内访问比较缓慢,好消息是,国内也成立了一个网站叫码云不是马云,学习git可以通过这个网站,很多国内项目也开始托管在码云上了。
不管是是使用github还是使用码云,步骤是差不多的,区别是github是全英文的慢一点。这里以码云为例。
首先你需要注册一个码云的账户,然后创建一个空的仓库。这个在码云上有教程大家自行操作。
创建好仓库后,你的仓库会有两个地址,一个是https,一个是ssh。因为使用https需要输入用户名和密码,推荐使用ssh的方式。要使用ssh你需要设置你账户的ssh公钥。公钥管理
要把本地仓库和远程仓库联系起来有两种方式:
当本地工作完成,需要将代码推送到远程仓库,使用git push命令
git push origin master
你的同事和你协同开发,他工作的那部分内容完成了,并且已经推送到远程仓库,你接下来的工作需要依赖他的那部分代码,那么你需要将远程仓库代码拉取到本地仓库,使用git pull命令
git pull origin master
正常的开发项目中都是多人协作,每个人的任务一般不会一天就完成,如果把没有完成的代码提交到远程仓库会影响被人工作。git提供了分支的功能就不用担心了,可以创建一个自己的分支,在上面干活,想提交就提交,等到工作完成再一次性合并到原来的分支。
新建git仓库时会默认创建一个分支master,它叫主分支。一般情况我们不会直接在主分支上干活,它主要用来发布版本。
创建一个开发分支develop
git branch develop
再切换到develop分支
git checkout develop
显示如下:
Switched to branch 'develop'
这两条命令也可以通过一条命令来实现
git checkout -b develop
-b参数表示创建并切换。
使用git branch命令查看当前分支(*表示正在使用的分支)
git branch
* develop
master
创建好develop分支后,你开始干活,完成上级领导交给你的任务,根据用户的手机壳颜色更换app主题,5分钟之后开发完毕,提交:
$ git add change_theme.py
$ git commit -m 'complete change theme'
经过测试功能完成,现在我们要合并到master分支
首先切换到master
$ git checkout master
Switched to branch 'master'
查看工作区,你会发现刚才开发的功能文件没有了,不要惊慌,因为那个提交是在develop分支上,现在我们把develop分支的工作合并到master分支上:
$ git merge develop
Updating 7173db6..5b83e32
Fast-forward
change_theme.py | 0
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 change_theme.py
git merge命令用于合并指定分支到当前分支。合并后,在查看文件夹发现,change_theme.py文件又回来了。
合并完之后你也可以删除掉develop分支:
$ git branch -d develop
Deleted branch develop (was 5b83e32).
$ git branch
* master