目录

上节回顾

# 1 全局样式修改
-body,h1 ...默认样式,去掉默认样式
-global.css
-main.js 导入一下即可 # 2 settings.js
-跟后端交互,要有后端地址
-写一个统一的地址,后期只需要改这一个地方即可
-导出,默认导出
-main.js 导入
-任意组件中:this.$settings.BASE_URL+'/home/banner/'
# 3 软件开发方式
-瀑布式开发:先设计---》开发---》测试---》上线
-敏捷开发:设计部门功能--》开发某个功能---》测试---》上线
-边设计边开发 # 4 根据原型图分析首页功能有哪些
-轮播图功能
-推荐课程 # 5 创建app home 注册
-models中写banner表
-BaseModel: abstract=True
-Banner表:title,image,link,info
-迁移:
# 6 写轮播图接口
-查询所有接口--->list--->自动生成路由
-GenericViewSet, ListModelMixin-->(list)
-自己封装了一个CommonListModelMixin:重写list方法, # 7 跨域问题
-出现跨域问题的原因:浏览器的同源策略【浏览器最基本的安全策略】
-不能向不同域【协议,地址,端口】发请求获取数据
-解决跨域问题:
-很多种:使用cors:跨域资源共享,后端+浏览器配合ie 10以上
-cors本质就是在响应头中加数据 -两种:简单请求,非简单请求 -第三方:djagno-cors-headers
-djanog框架,flask:flask_cors # 8 git:软件,做代码版本管理和协同开发的软件
-下载:win,mac
-pycharm配置git
-git,github,gitee,gitlab
-远程仓库
-公开:大家都可以看
-私有的:只有公司部分人可以看:收费 # 补充:app开启后广告页
-app一启动,向后端发送个请求
-接口返回:图片地址,跳转地址
-{code:100,msg:成功,result=[{id:1,img:http://xxx.png,link:'/course',type:1},{id:2,img:http://xxx.png,link:'http://www.baidu.com',type:0}]}
-录入数据: admin # 表迁移:django的migration如何监控表发生变化?
-makemigraions
models.py --->在表模型中加入了一行---》生成一个记录---》根据这个记录---》同步到数据库 # 面试题:
-queryset对象上有哪些方法?
-.values和value_list有什么区别

1 主页前端

# 首页页面组件
# 头部组件(小组件)
# 轮播图组件(小组件)
# 尾部组件(小组件)

Header组件

template>
<div class="header">
<div class="slogan">
<p>老男孩IT教育 | 帮助有志向的年轻人通过努力学习获得体面的工作和生活</p>
</div>
<div class="nav">
<ul class="left-part">
<li class="logo">
<router-link to="/">
<img src="../assets/img/head-logo.svg" alt="">
</router-link>
</li>
<li class="ele">
<span @click="goPage('/free-course')" :class="{active: url_path === '/free-course'}">免费课</span>
</li>
<li class="ele">
<span @click="goPage('/actual-course')" :class="{active: url_path === '/actual-course'}">实战课</span>
</li>
<li class="ele">
<span @click="goPage('/light-course')" :class="{active: url_path === '/light-course'}">轻课</span>
</li>
</ul> <div class="right-part">
<div>
<span>登录</span>
<span class="line">|</span>
<span>注册</span>
</div>
</div>
</div>
</div> </template> <script> export default {
name: "Header",
data() {
return {
// 当前所在路径,去sessionStorage取的,如果取不到,就是 /
url_path: sessionStorage.url_path || '/',
}
},
methods: {
goPage(url_path) {
// 已经是当前路由就没有必要重新跳转
if (this.url_path !== url_path) {
this.$router.push(url_path);
}
sessionStorage.url_path = url_path;
},
},
created() {
// 组件加载万成,就取出当前的路径,存到sessionStorage this.$route.path
sessionStorage.url_path = this.$route.path;
// 把url_path = 当前路径
this.url_path = this.$route.path;
}
}
</script> <style scoped>
.header {
background-color: white;
box-shadow: 0 0 5px 0 #aaa;
} .header:after {
content: "";
display: block;
clear: both;
} .slogan {
background-color: #eee;
height: 40px;
} .slogan p {
width: 1200px;
margin: 0 auto;
color: #aaa;
font-size: 13px;
line-height: 40px;
} .nav {
background-color: white;
user-select: none;
width: 1200px;
margin: 0 auto; } .nav ul {
padding: 15px 0;
float: left;
} .nav ul:after {
clear: both;
content: '';
display: block;
} .nav ul li {
float: left;
} .logo {
margin-right: 20px;
} .ele {
margin: 0 20px;
} .ele span {
display: block;
font: 15px/36px '微软雅黑';
border-bottom: 2px solid transparent;
cursor: pointer;
} .ele span:hover {
border-bottom-color: orange;
} .ele span.active {
color: orange;
border-bottom-color: orange;
} .right-part {
float: right;
} .right-part .line {
margin: 0 10px;
} .right-part span {
line-height: 68px;
cursor: pointer;
}
</style>

导航栏:

Banner组件

<template>
<div class="banner">
<el-carousel height="400px" :interval="5000" arrow="always">
<el-carousel-item v-for="item in img_list" :key="item.id">
<div v-if="item.link.indexOf('http')>-1">
<a :href="item.link">
<img :src="item.image" :alt="item.title">
</a>
</div>
<div v-else>
<router-link :to="item.link">
<img :src="item.image" :alt="item.title">
</router-link>
</div> </el-carousel-item>
</el-carousel>
</div>
</template> <script>
export default {
name: "Banner",
data() {
return {
img_list: []
}
},
created() {
this.$axios.get(this.$settings.BASE_URL + '/home/banner/').then(res => {
console.log(res.data)
if (res.data.code == 100) {
this.img_list = res.data.data
} else {
this.$message(res.data.msg)
}
}).catch(res => {
this.$message('轮播图服务器异常,请稍后再试')
})
}
}
</script> <style scoped>
.el-carousel__item {
height: 400px;
min-width: 1200px;
} .el-carousel__item img {
height: 400px;
margin-left: calc(50% - 1920px / 2);
}
</style>

catch方法:

router-link实现点击跳转:

router-link只能跳转到内部链接。所以需要使用v-if判断是否为外部链接:

  • public int indexOf(int ch): 返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。

Footer组件

<template>
<div class="footer">
<ul>
<li>关于我们</li>
<li>联系我们</li>
<li>商务合作</li>
<li>帮助中心</li>
<li>意见反馈</li>
<li>新手指南</li>
</ul>
<p>Copyright luffycity.com版权所有 | 京ICP备17072161号-1</p>
</div>
</template> <script>
export default {
name: "Footer"
}
</script> <style scoped>
.footer {
width: 100%;
height: 128px;
background: #25292e;
color: #fff;
} .footer ul {
margin: 0 auto 16px;
padding-top: 38px;
width: 810px;
} .footer ul li {
float: left;
width: 112px;
margin: 0 10px;
text-align: center;
font-size: 14px;
} .footer ul::after {
content: "";
display: block;
clear: both;
} .footer p {
text-align: center;
font-size: 12px;
}
</style>

页脚:

整体布局:

版权备案号相关:

copyright 版权备案号 --> 不能盗版
copyleft 没有版权 --> 可以随便复制
网站在国内上线 需要先在工信部备案 备案号需要在网站的某个地方写出来。

2 git介绍和安装

# 后端,写了一个接口,完成了一个功能,在公司里,功能完成,要把代码提交到远程仓库

# 公司里协同开发,版本管理需要使用软件:svn,git

# 协同开发的问题:
1.代码合并
2.版本升级 版本管理
需要有一台机器自动做代码合并、版本管理 只要提交了代码就有记录 通过记录可以回退到某个版本。
3.代码版本管理 # 下载:安装在操作系统上
-https://git-scm.com/downloads
-一路下一步
-任意位置点右键,如果有两个东西(【git gui here】 【git bash here】),表示安装完成

这两个必须勾选上:

git和svn比较

# git与svn比较
svn:集成式管理,服务端挂掉就做不了版本管理,代码合并
git:分布式管理,服务端挂掉,本地还可以继续做版本管理,代码合并

git本地客户端之间也可以互相提交。

svn客户端必须和远程服务器的应用进行交互。

pycharm中配置git

# github , gitee开源软件,
# 下载成zip,使用pycharm打开
# 使用pycharm直接调用git将代码拉下来,打开---》配置pycharm
-settings中搜索git,把git安装可执行文件配置好 # 以后下载开源软件:vcs--->get from version contral--->填入路径---》clone下来即可

在pycharm settings中搜索git:

找到git的安装路径中的git可执行文件:Git\bin\git.exe

找到之后点击Test,即可完成设置。

现在使用pycharm从gitee拉代码下来:

在pycharm中点击VCS:

将地址复制到如下:

点击clone,pycharm就会从gitee将代码拉下来,并且直接帮你打开这个项目。也就不需要下载zip安装包再使用pycharm打开,省了一步。

svn,git ,github,gitee,gitlab

# svn:
版本管理软件,它是集中式的版本管理,必须有个svn的服务端,服务端如果过来,svn就用不了了 # git :
版本管理软件,它是一个分布式的版本管理,每个客户端都可以作为服务端,即便服务端挂了,也能进行版本管理(本地管理) # github:
全球最大的开源远程git仓库,全球最大的开源仓库,git远程仓库
-如果我要写开源软件,本地装git,把代码提交到github
-python监控公司代码有没有被传到github # gitee:
中国最大的开源软件仓库 【私有仓库,花钱买空间】 # gitlab:
公司内部的远程仓库,运维搭建维护 # bitbucket:
只有私有仓库
-远程代码仓库

3 git工作流程

# https://www.cnblogs.com/liuqingzheng/p/15328319.html

# 三个区
-工作区 存放文件的地方
-暂存区 工作区的变更,提交到暂存区
-版本库 暂存区的内容,提交到版本库 # 三个区相互操作
-下面学的命令,就是在操作这三个区 # 工作流程
1 只要被git管理了,只要文件发生变化(新增,删除,修改),使用git就能看到它变成红色了(git可以进行监控)
2 工作区的变更,要提交到暂存区,变会发现文件变成绿色了
3 从暂存区提交到版本库,才会被版本管理,一旦被版本管理了,后期可以回退到某个版本 4 可以把版本库的内容,提交到远程仓库,统一管理起来【所有开发者都可以提交】
5 本地可以拉去远程的代码
6 本地可以把本地代码提交到远程 # 注意点:
"""
1)有红色信息(工作区有内容),就需要执行 add
2)全绿信息(内容全部在暂存区),才执行 commit
3)只有被版本库控制的代码,才能被监听,所以可以回滚到任何一个版本
"""

4 git常用命令

# 1 初始化仓库  ,执行这条命令,这个文件夹就变成了git仓库
git init 不要在根路径(如:D:\)执行该命令!!,这意味这要将D盘下所有文件都作为git仓库管理的内容 # 2 要在仓库中加入文件,修改文件
s1.py # 新增了 # 3 查看状态的命令
git status # 4 配置用户信息【如果局部没有,使用全局,如果全局也没有,会报错】
-局部配置---》只针对于当前仓库--》当前仓库.git文件夹下的config中
git config user.name 'liuqingzheng'
git config user.email '616564099@qq.com'
-全局配置---》针对于所有仓库---》 C:\Users\用户文件夹\.gitconfig新建用户信息,在所有仓库下都可以使用
git config --global user.name 'lqz'
git config --global user.email '306334678@qq.com' # 5 把工作区内容提交到暂存区
git add . # 把工作区所有更改都提交到暂存区
git add 文件名 # 把工作区当前文件的更改都提交到暂存区 # 6 把暂存区提交到版本库--【一定要要加注释,不加提交不了,在公司,注释越详细越好】
# 把暂存区所有的数据,都提交到版本库
git commit -m '提交了s1.py和s2.py' # 7 查看状态
git status #发现没有红,绿,说明,当前仓库下所有文件都已经被管理了,并且没有变化 # 8 修改一下s2.py ,再提交到本地版本库
修改s2.py
git status # 发现红了
git add . # 提交到暂存区
git status # 发现绿了
git commit -m '修改了s2.py'
git status # 没有颜色了 # 9 到此,咱们提交了两个版本了 # 10 查看版本情况---【本地版本库有哪些版本----》一个版本有个唯一id号】
git log
git reflog # 精简的显示 # 11 修改s1.py ,它变红了,把更改退回去
git checkout . # 当前所有的更改都回退,不包含新增的文件 # 12 把s3.txt,先提交到暂存区
新增s3.txt
git add .
git status # s3.txt变绿了
git reset HEAD # s3.txt变红了,说明从暂存区拉回到了工作区 # 13 把版本库内容,回退到暂存区
git reset --soft 上一个的版本号 # 14 从版本库拉回到工作区---》能看到红色的内容----》【了解】
git reset --版本号
git reset --mix 版本号 # 15 小案例
1 新建一个视频文件 :致命诱惑.mp4
2 git status # 变红
3 git add . #提交到暂存区
4 git commit -m '新增了诱惑视频'
5 当前工作区显示上一个版本的样子 # 没有 【致命诱惑.mp4】 视频
git reset --hard 版本号 #直接回退回 这个版本号,所有的更改都没了,致命诱惑.mp4 就看不到了
6 回退到被版本管理的最后版本
git reset --hard 版本号 #不显示的东西又回来了 # 查漏补缺
-1 git status -s 简略显示
-2 空文件夹不会被git记录
-3 如果删掉当前仓库的用户,就会使用系统的用户,git log 可以看到是哪个用户提交的
-4 了解
查看时间点之前|之后的日志:
>: git log --after 2018-6-1
>: git log --before 2018-6-1
>: git reflog --after 2018-6-1
>: git reflog --before 2018-6-1
查看指定开发者日志
>: git log --author author_name
>: git reflog --author author_name
回滚到指定版本:
回滚到上一个版本:
>: git reset --hard HEAD^
>: git reset --hard HEAD~
回滚到上三个版本:
>: git reset --hard HEAD^^^
>: git reset --hard HEAD~3
回滚到指定版本号的版本:
>: git reset --hard 版本号 (重点)
>: eg: git reset --hard 35cb292
--5 git log,git reflog # git log 和git reflog的区别
git log 命令可以显示所有提交过的版本信息如果感觉太繁琐,可以加上参数 --pretty=oneline,只会显示版本号和提交时的备注信息git reflog 可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作) # git reset --hard,--mix,--soft的区别
hard (硬)-> 全部删除,会彻底返回到回退前的版本状态,了无痕迹mixed (中)-> 保留工作目录,文件回退到未commit的状态soft (软)-> 保留工作目录、暂存区 ,文件会回退到未 add(未到暂存)的状态 总结:soft是撤销commit的提交,但工作区未提交的更改还是保留;mixed是撤销暂存区的提交,工作区的更改同样也保留;而hard是把工作区、暂存区、commit到仓库的三个版本都回滚了 # 总结: 记住的:
git add
git commit -m
git reset --hard 版本号
会用:
git init
git status
git log
git reflog 了解:
git checkout .
git reset HEAD
git config --global user.email "123@qq.com" """
1)有红色信息(工作区有内容),就执行 add
2)全绿信息(内容全部在暂存区),才执行 commit
3)只有被版本库控制的代码,才能被监听,所以可以回滚到任何一个版本
空文件夹不会被git记录
"""

git init -- 新建版本库

方法一:

新建一个文件夹,该文件夹没有被get管理:

在文件夹当前路径打开cmd,输入git init:

会在当前文件夹创建一个隐藏的.git文件夹。如果看不到就打开显示隐藏的项目。这表示这个文件夹已经是一个git仓库了。删掉这个.git文件就可以取消git管理。

方法二:

在文件夹右键:

再输入命令:

新建一个py文件:

get status -- 查看状态

查看状态的命令:

可以发送我们新创建的文件变红了。

配置用户信息

提交代码是用户提交的,本地也可能有多个用户。所以提交的时候要进行用户信息配置。

# 配置用户信息
# 如果局部没有,使用全局,如果全局也没有,会报错
-局部配置 ---> 只针对于当前仓库 ---> 当前仓库.git文件夹下的config中
git config user.name 'liuqingzheng'
git config user.email '616564099@qq.com'
-全局配置 ---> 针对于所有仓库 ---> C:\Users\用户文件夹\.gitconfig新建用户信息,在所有仓库下都可以使用
git config --global user.name 'lqz'
git config --global user.email '306334678@qq.com'

局部配置:

没有反应是最好的反应。

局部配置是对当前git仓库生效,在.git文件夹中有给config文件可以查看到这些配置:

这些配置只针对当前仓库有效:

全局配置:

查看全局配置:

git add -- 提交到暂存区

# 把工作区内容提交到暂存区
git add . # 把工作区所有更改都提交到暂存区
git add 文件名 # 把工作区当前文件的更改都提交到暂存区

提交一个文件到暂存区:

git commit -m '注释' -- 提交到版本库

# 把暂存区提交到版本库--【一定要要加注释,不加提交不了,在公司,注释越详细越好】
# 把暂存区所有的数据,都提交到版本库
git commit -m '提交了s1.py和s2.py'

示例:

发现没有红,绿文件,说明当前仓库下所有文件都已经被管理了,并且仓库下文件没有变化(没有新增或修改的文件)。

# 修改一下s2.py ,再提交到本地版本库
修改s2.py
git status # 发现红了
git add . # 提交到暂存区
git status # 发现绿了
git commit -m '修改了s2.py'
git status # 没有颜色了 # 到此,咱们提交了两个版本了

git log / git reflog -- 查看版本日志

git log查看版本:

git reflog查看版本:比较精简

git checkout -- 工作区变更回退

# git不会操作没有被git管理的文件 --> 新增的文件不会因为版本回退而删掉
# 新增一个s3文件,修改已经存在的s1.py,使用命令将s1回退版本
git checkout . # 当前所有的更改都回退,不包含新增的文件
# 执行完这个命令之后s3没有变化,s1回退版本。

确认删除视频:

回退到某个版本:

视频消失并不是真的没有了,是给你藏起来了。

git reset HEAD -- 暂存区拉回工作区

# 把s3.txt,先提交到暂存区
新增s3.txt
git add .
git status # s3.txt变绿了
git reset HEAD # s3.txt变红了,说明从暂存区拉回到了工作区

git reset --soft 版本号 -- 版本库拉回暂存区

查看版本库,回退到之前的版本:

查看:

执行命令之后,s3文件回到了暂存区,版本库原本有3个版本,现在变成了只有2个版本:

5 git 过滤文件

# 咱们项目中,有些文件,或文件夹不想被git管理
-比如:
-node_modules文件夹
-.idea
-xx.pyc # python 的编译文件 # pychram管理文件 # 忽略步骤,在仓库中新建 .gitignore [没有任何后缀名],在文件中配置
1)在仓库根目录下创建该文件
2)文件与文件夹均可以被过滤
3)文件过滤语法 # 使用步骤
-1 在仓库目录下 .git 所在目录下 新建 .gitignore
-2 在里面写忽略文件
mode_models
.idea
*.pyc
*.log
-3 写到的就会被忽略
-4 已经被管理过的文件,不会被忽略 # 忽略文件写法 文件或文件夹名:代表所有目录下的同名文件或文件夹都被过滤
/文件或文件夹名:代表仓库根目录下的文件或文件夹被过滤 # 例如:
a.txt:项目中所有a.txt文件和文件夹都会被过滤
/a.txt:项目中只有根目录下a.txt文件和文件夹会被过滤
/b/a.txt:项目中只有根目录下的b文件夹下的a.txt文件和文件夹会被过滤
*x*:名字中有一个x的都会被过滤(*代表0~n个任意字符)
空文件夹不会被提交,空包会被提交,包可以被提交(包中有一个init空文件) # 补充案例
文件夹里面只有一个被忽略的文件时,此时执行git status不会显示这个文件夹 在这个文件夹中再新建一个文件,才会显示这个文件夹

python的编译文件:

新建文件:

在里面写忽略文件:

5.1 补充:luffy后端项目要被git管理

# 在项目路径下敲git init
# 创建 .gitignore
# git add .
# git commit -m '初始化项目'

6 git多分支开发

# 公司里,你们3个人开发了路飞项目,首页功能写完了---》上测试环境,给用户看---》然后继续开发---》开发了一段时间---》正好项目不能运行---》用户想看写到什么程度了
# 分支:通过分支,更方便协同开发,管理版本 # 分支操作
-查看分支:
git branch # * 和绿色表示你当前所在的分支,查看本地分支
-创建
-git branch dev
-切换分支
- git checkout dev
-删除分支
-git branch -d dev # 在其他分支上才能删它
-合并分支:【可能会有冲突】
- 要把dev合并到master上
-回到master上,开始执行代码
git merge dev -查看远程分支:【后面会讲】
git branch -a

7 git远程仓库

# github:很慢
# gitee:国内的,很快,咱们用---》公司里会用(小公司)
# gitlab:公司内部,自己搭建---》搭建步骤:https://zhuanlan.zhihu.com/p/413217715
-我给你搭建一个:测试一下 # gitee:中午所有人注册一个gitee账号,登录进去---》把咱们的代码提交到远程仓库
-新建一个远程仓库
-只要写个仓库名字,什么都不要填,仓库是空的(如果不是空的,操作麻烦)
-开源协议:GPL,Apache
-linux:GPL,自由使用开源的软件,修改,增加内容,可以收费,但是你的代码必须开源
-Kafka。。。:Apache,可以使用开源软件,但必须注明使用了
-把本地代码,上传到远程仓库
-本地有仓库,已经有版本管理了,远程有仓库,是空的
-设置用户名和邮箱--(如果不按照它显示的设置,在右侧贡献者看到别人头像)
git config --global user.name "liuqingzheng"
git config --global user.email "306334678@qq.com" -已有仓库
-新增一个远程仓库
-git remote add origin https://gitee.com/liuqingzheng/lqz.git
-把本地代码推上去
-git push origin master # 把本地的主分支推到origin对应的远程分支
-第一次推,需要输入gitee的账号和密码
-以后不需要输入用户名密码了
-凭证管理,可以删除,可以修改

7.1 把路飞项目传到远程仓库(非空的)

# 1 创建远程仓库luffy_api---【非空】
# 2 git clone https://gitee.com/liuqingzheng/luffy_api.git # 把远程仓库内容克隆到本地
# 3 把我们项目的代码,copy到 luffy_api这个文件夹下(.git文件夹不要copy)
# 4 git add .
# 5 git commit -m ‘初始化仓库’
# 6 git push origin master # 以后,完成了项目的某个功能就要执行下面的命令,以后你在公司中得开发提交步骤
-git add .
-git commit -m '完成了xx功能,修改了xx文件。。。。' # 提交到了本地仓库 -每次提交【推到远端】代码之前,要拉取一下代码---》没事你就拉去一下,保证本地的版本库一直跟远端保存一样----以后冲突会变少
-git pull origin master
-git push origin master # 把本地的mater分支推送到远端origin对应的地址-【可能推不上去】
-如果推不上去,说明本地不是最新版本,一定下拉去一下,成了最新版本再去提交

8 ssh链接远程仓库,协同开发

# 本地仓库和远程仓库建立关系时,建立的是https的链接,公司一般用ssh的链接
# https和ssh的区别
-https:输入用户名密码,保存在凭据管理中
-ssh:配置公钥私钥
-生成公钥私钥
-把公钥放到gitee上
-配好远程仓库,以后直接提交,不需要输入任何秘钥的东西
# ssh的配置步骤
-按照这个步骤操作:https://gitee.com/help/articles/4181
-cmd命令行中,一路回车,会在【C:\Users\oldboy\.ssh】文件夹下生成公钥和私钥
ssh-keygen -t ed25519 -C "306334678@qq.com"
-生成一个公钥,一个私钥
id_ed25519 #私钥,千万不能泄露
id_ed25519.pub #公钥,可以给任何人 -把公钥配置在gitee的配置文件中
-到此,你的机器和gitee互相上传下载代码,都不要认证了 # 以后使用:免密了
-先删除origin 对应的https的链接:git remote remove origin
-查看一下,没有了:git remote
-配置成ssh的地址
git remote add origin git@gitee.com:liuqingzheng/luffy_api.git
-以后直接拉去,提交代码即可
git pull origin master
git push origin master

8.1 协同开发

# 你们都注册gitee账号了(公司是注册gitlab账号)
# 我们要共同开发luffy项目,协同开发 # 我是仓库管理员(你老大),要把你们加成项目的开发者
-要么给你个链接,点一下
-要么直接添加你 # 你进入到你的仓库中,就能看到这个项目了
-把项目clone下来:git clone git@gitee.com:liuqingzheng/luffy_api.git
-用pycharm打开,愉快的开发了,开发完新功能
-git add .
-git commit -m
-git pull origin master
-git push origin master

扩展

重写drf方法

重写get_queryset,实现不同方法使用的数据不一样

重写get_serializer,实现不同方法使用的序列化类不一样

重写perform_destroy,实现只有某些用户才能删除,某些用户不能删除:

跨域中间件

"Access-Coutrol-Allow-Origin" = "*"允许所有地址访问该后端。如果不加这个响应头,连option请求都会因为跨域而被浏览器阻挡。

"Access-Coutrol-Allow-Origin" = "*"允许携带所有请求头。

导出项目依赖

# 问题
本地依赖 和 上线环境的依赖不一样 # 示例:
开发环境使用pymysql
上线环境使用mysqlcilent # 解决
开发环境使用 dev.txt
上线环境使用 requirements.txt # 每个项目中都会有个requirements.txt 文件,指明了所有依赖和版本
-生成:pip freeze # 显示当前环境装的所有依赖
pip freeze > requirements.txt # 当前所有都放进去 -新环境中,按装依赖
pip install -r dev.txt # 开发环境
pip install -r requirements.txt # 上线环境环境

飞秋 波萝社 写真 xd只能帮到这里了

轮播图点击跳转

# 前端是个app ,后端用djagno写的
# app一打开,广告图片盖住,如果点击可以使用浏览器打开跳转,也可以跳转到自己app内部某个页面 # 后端:
-广告表:字段:img,title,link, link_type:0/1
-写查询好接口:
-新增接口
# 前端:
-一打开app,就调用接口---》图片盖住
-用户点击---》跳转
-外部链接:判断是跳到外部,拿到link的值,直接打开浏览器即可
-内部链接:判断是跳到内部,拿到link的值,根据页面名字(app可以根据页面名字进行跳转),跳转到页面

作业

# 0 整理笔记

# 1 每个人注册一个gitee账号
# 2 新建一个python项目,传到远端,把你同桌设为开发者(ssh链接)
# 3 尽量给他制造冲突
# 4 你们相互解决

【django-vue】主页前端搭建 git介绍和安装 git工作流程 git常用命令 git过滤文件 重写drf方法 跨域中间件 导出项目依赖的更多相关文章

  1. git详情、git工作流程、常用命令、忽略文件、分支操作、gitee远程仓库使用

    今日内容概要 git详情 git工作流程 git常用命令 过滤文件 分支操作 git远程仓库使用 可参照:https://www.cnblogs.com/liuqingzheng/p/15328319 ...

  2. git flow 工作流程以及常用命令

    一.分支介绍 master 也是产品分支,只有一个,一般情况下不会在这个分支上进行代码操作 develop 只有一个,新特性的开发是基于 develop 开发的,但是不能直接在 develop 上进行 ...

  3. 【django-vue】前端取消默认样式 main.js配置 后端主页模块接口 跨域问题详解 项目自定义配置 git介绍和安装

    目录 回顾 上节课回顾 今日内容 1 前端全局样式和js配置 1.1 global.css 1.2 settings.js 1.3 main.js 2 后端主页模块接口 三种开发模式 模型父类Base ...

  4. 前台主页功能-前台轮播图功能完成-git介绍和安装-git使用流程-git常用命令-git忽略文件

    目录 前台主页功能-前台轮播图功能完成-git介绍和安装-git使用流程-git常用命令-git忽略文件 昨日内容回顾 今日内容概要 今日内容详细 0 导出项目依赖 0 学长问题解析 1 前台主页功能 ...

  5. Git(介绍和安装)

    Git 是什么 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的分布式版本控制系统. 与常用的版本控制工具 CVS, Subversion 等不同,它 ...

  6. git 常用命令(含删除文件)

    git 常用命令(含删除文件) Git常用操作命令收集: 1) 远程仓库相关命令 检出仓库:$ git clone git://github.com/jquery/jquery.git 查看远程仓库: ...

  7. Git 工作原理以及常用命令操作

    GIT工作原理 要了解GIT工作原理,先了解GIT的这几块区域: 工作区域划分 工作区:指的是本地工作空间,如果刚拉取下来的代码,没有修改的内容,这块区域是空白的 (modified-已修改状态) 暂 ...

  8. Git介绍及安装配置

    一.概述 1.1git概念 Git是一个开源的分布式版本控制系统,用于敏捷高效处理任意规模的项目,其作者为Linux创造者Linus Torvalds为管理Linux内核而开放的一个开源的版本控制柔软 ...

  9. git介绍及安装

    git介绍 git是一个开源的分布式版本控制系统,用于敏捷高效的处理任何或大或小的项目.git是linus Torvalds为了帮助管理Linux内核开发的一个开放源码的版本控制软件. Git 与常用 ...

  10. Git介绍、安装、命令和实战

    一.Git介绍 Git是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非常大的项目版本管理. 二.Git安装(Mac系统) 在Git官网下载安装包双击直接安装 在终端输入git来检测Git ...

随机推荐

  1. include 0。0

    参考好文 php://filter的各种过滤器_php://filter过滤器种类-CSDN博客 打开页面是一段php代码 可以知道flag在flag.php文件里面,然后执行没有结果,就只能用文件读 ...

  2. Leetcode回文数

    直接上python代码 class Solution: def isPalindrome(self, x: int) -> bool: if x<0: //负数必不是回文数 return ...

  3. Python 中的单下划线和双下划线

    哈喽大家好,我是咸鱼 当我们在学习 Python 的时候,可能会经常遇到单下划线 _ 和双下划线 __ 这两种命名方式 单下划线 _ 和双下划线 __ 不仅仅是只是一种简单的命名习惯,它们在 Pyth ...

  4. JAVAweek7

    本周学习[函数][数组] 什么是函数: 函数就是定义在类中的具有特定功能的一段独立小程序.函数也称为方法. 函数的格式: ·修饰符 返回值类型 函数名(参数类型 形式参数) { 执行语句: retur ...

  5. The request is not allowed by the user agent or the platform in the current context, possibly because the user denied permission,iphone手机video标签报错

    The request is not allowed by the user agent or the platform in the current context, possibly becaus ...

  6. Guava Preconditions类的各种用法

    公众号「架构成长指南」,专注于生产实践.云原生.分布式系统.大数据技术分享. Guava Preconditions类 提供静态方法列表,用于检查是否使用有效参数值调用方法或构造函数.如果前提条件失败 ...

  7. [CF1034C] Region Separation

    题目描述 There are $ n $ cities in the Kingdom of Autumn, numbered from $ 1 $ to $ n $ . People can trav ...

  8. Vue2路由嵌套是注意子路由path问题

    1.当子路由以/开始时,它会被视为根路由,并且会显示在URL的根路径中 2.当子路由不以/开始时,它将被视为相对路径,相对于父路由的路径

  9. 漆包线工厂生产管理MES系统解决方案

    ​  漆包线行业老板痛点: 1.漆包线比较传统的行业,一般都是靠人工去管理,老板想及时知道工厂的生产,销售.出入库.库存情况: 2.型号多称重打印易错,没有系统前 :称重打印,出入库,财务脱节,库存和 ...

  10. 5 款开源热搜项目「GitHub 热点速览」

    随着 2023 年的结束,我们也迎来了 2024 年的第一个工作日,新的一年就让「GitHub 热点速递」陪你一起进入工作状态吧! 说到上周的 GitHub 热搜项目就不得不提一下,一周飙升了 8 千 ...