项目架构
shoppe项目架构
创建虚拟环境
不会污染系统默认的python环境
#创建虚拟环境
python -m venv myvenv
#激活虚拟环境
myenv/Scripts/activate
在虚拟环境中,安装使用的包。
pip install -r requirements.txt
创建django项目
- 命令行创建django项目
django-admin startproject shoppe_django
-
使用pycharm打开项目,并配置创建的虚拟环境
-
修改
settings.py
配置文件
# 跨域
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'corsheaders', # 注册跨域
'rest_framework', # drf框架
]
MIDDLEWARE = [
...,
'corsheaders.middleware.CorsMiddleware', # 添加跨域中间件
'django.middleware.common.CommonMiddleware',
# 'django.middleware.csrf.CsrfViewMiddleware', # 关闭csrf验证
...,
]
CORS_ORIGIN_ALLOW_ALL = True # 允许所有源访问
# 跨域白名单
CORS_ORIGIN_WHITELIST = ("http://localhost:8080",)
CORS_ALLOW_CREDENTIALS = True # 允许请求携带cookie
# 允许跨域的方法
CORS_ALLOW_METHODS = (
"GET",
"POST"
)
# 允许跨域的请求头
CORS_ALLOW_HEADERS = (
"authorization",
"content-type"
)
运行前端的项目
将整个vue项目拖入vscode,打开一个终端窗口,安装依赖:
npm install
然后运行:
npm run serve
在浏览器地址栏输入http://localhost:8080/
项目分析
商业模式分析
#B2B: 企业对企业,如阿里巴巴
#B2C: 企业对个人,如京东到家
#C2C: 个人对个人,如淘宝个人店
根据网站类型,确定项目总体需求,然后进行需求分析,可行性分析等,确定项目要实现的总体功能。为了方便项目管理及多人协同开发,我们根据需求将功能划分为不同的模块。
在项目开发中,每个模块
都会对应一个子应用
,便于管理和解耦
。
商品模块
广告类别表
广告内容表
商品类别表
商品表
商品图片表
用户模块
用户表
收货地址表
订单模块
订单信息表:订单编号、用户(外键)、收货地址(外键关联)、总商品数、总价格、运费、支付方式、支付状态、创建时间。
订单商品表
购物车模块
购买的商品及数量 -->redis Hash
购买的商品的选中状态–> redis Set
模块 | 功能 |
---|---|
验证 | 图片验证 |
用户 | 注册、登录、用户中心 |
首页广告 | 首页广告 |
商品 | 商品列表、商品搜索、商品详情 |
购物车 | 购物车管理 |
订单 | 确认订单、提交订单 |
支付 | 支付宝支付 |
针对每个模块,需要详细分析并设计表结构。
git
简介
git 是一个开源的分布式版本控制
系统,用于敏捷高效地处理任何或小或大的项目。
最初是 Linus 为了管理 Linux 内核开发而开发的一个开源的版本控制软件。
版本控制
- 版本管理
保存项目的每一个版本信息时,不存重复的数据,节约内存 - 分支管理
团队开发中,多条生产线同时推进,提高效率 - 权限控制
对团队中开发者进行权限控制,对团队外贡献的代码进行审核 - 历史记录
查看修改人、日志信息等;将本地文件恢复到某一历史版本
版本控制分类
集中式:svn,各个版本存于服务器,易单点故障
分布式:git,能有效解决单点故障,C语言开发
git安装
git 支持 32 位和 64 位,需要根据你操作系统的实际情况选择。
git版本
这里我们下载
git-2.30.0-64-bit.exe
然后安装到windows即可
其他默认!!使用时右键–git bash here
git操作
使用git管理项目
- 创建一个项目,在项目目录下,初始化git仓库
git init
然后会在项目目录下生成一个隐藏文件夹.git,内部的文件不能随意修改。
-
设置签名
用户名:laufing
Email:xxxx@qq.com
作用:区别不同的开发人员
命令:
项目级别—当前项目
git config user.name laufing
git config user.email xxxx@qq.com
签名保存在项目目录下.git/config
系统用户级别—登录操作系统的用户
git config - -global user.name laufing
git config - -global user.email xxxx@qq.com
签名保存在~/.gitconfig
二者的优先级:就近原则 -
实际操作
git status #查看当前工作区、暂存区状态
#所有文件增加到暂存区,也可指定一个文件
git add .
#从暂存区移除所有-
git rm --cached -r ./*
#暂存区提交到本地仓库
git commit -m "描述信息"
#查看历史记录
git log
如下,可以看到提交的人、提交时间、提交描述、每次提交的索引hash值,HEAD是一个指针,指向当前版本。
若内容太多,需翻页:空格向下、b向上、q退出
#格式化输出版本
git log --pretty=online
git log --oneline
git reflog
- 版本切换
1)使用索引
2)使用^,后退一步
3)使用~,后退n步
#随意切换
git reflog
git reset --hard 复制的索引
#后退的切换
git reset --hard HEAD^ #后退一步
git reset --hard HEAD^^ #后退两步
#后退n步
git reset --hard HEAD~100 #后退100步
- hard、soft、mixed
#查看本地文档
git help reset
#reset的三个参数 index file[暂存区] working tree[工作区]
#reset --soft:仅在本地仓库移动HEAD指针
#reset --mixed:本地仓库移动指针;重置暂存区;
#reset --hard:本地仓库移动指针;重置暂存区;重置工作区
#hard使用较多
- 删除文件,并找回
文件存在时的状态,需提交到本地库
#删除
rm test.txt #在git管理的项目目录下
#将删除操作,增加到暂存区
git add .
#提交本地仓库
git commit -m "测试删除"
#查看文件,已删除
#恢复只需回到上一个版本,就可以实现文件的恢复
git reset --hard 索引
#如果删除操作,只增加到暂存区,没有提交到本地库
#则简单恢复如下
git reset --hard HEAD
代码托管平台
代码推送到远程托管平台
- 查看远程仓库
git remote -v
#添加远程仓库
git remote add origin url # url为复制的远程仓库https地址
- 推送代码
git push origin master
git push origin master --force #强制推送
对于超时问题,就多尝试几次:
fatal: unable to access 'https://github.com/wn15239159680/vue_lauf1.git/':
Failed to connect to github.com port 443 after 21097 ms: Timed out
当远程仓库发生改变时,应该先拉取远程仓库。
git pull origin master # 拉取远程仓库
项目的分支
#查看分支
git branch
#创建分支
git branch b1
#切换到b1分支
git switch b1
#将b1分支合并到master
git switch master
git merge b1
Pycharm中使用git
- 在文件上 右键>git > add(添加暂存区)
- commit
作业
- 创建一个django项目,配置跨域。
- 创建一个Vue项目,向django发送请求,测试是否可以实现跨域。
- 注册一个github账号或者gitee账号,创建一个自己的仓库。
- 使用git管理以上创建的django项目,将搭建好的django项目推送到自己的github远程仓库。