复习
# 1 前端使用elementui
-npm install -S elementui
-main.js--->入口中配置
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);
-任意Vue的组件中,从官网复制即可
-Vant 前端UI库
-bootstrap和Jquery
-npm install -S bootstrap@3
-npm instal -S jquery
-main.js--->入口中配置
import 'bootstrap'
import 'bootstrap/dist/css/bootstrap.min.css'
-项目根路径下---》新建一个vue.config.js
const webpack = require("webpack");
module.exports = {
configureWebpack: {
plugins: [
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery",
"window.jQuery": "jquery",
"window.$": "jquery",
Popper: ["popper.js", "default"]
})
]
}
};
-以后$ 就是jquery对象
-bootstrap直接使用即可
# 2 后台User表
-整个项目的User表,使用auth的User表扩写
-使用auth的User表,要么项目在迁移之前就使用,否则需要删库,删迁移文件(auth,admin),重新生成
-继承AbstractUser----》Meta下有个abstract参数---》只用来继承
-加字段即可
-一定要在项目的配置文件中声明
AUTH_USER_MODEL='app名字.表名'
-两条迁移命令
-django.contrib---》admin,auth,session
# 3 前台首页设计
-公司里有原型图(产品经理)---》美工的切图(ui组)---》前端
-首页是Home.vue,Header.vue,Banner.vue,Footer.vue
# 4 后台接口
-原型图----》首页需要哪些接口
-创建一个home的app,设计表(敏捷开发)--->查询所有-->is_show,is_delete
-BaseModel 基表,不能再数据库生成
-Banner表继承BaseModel表---》继续写Banner的字段
-字段多一个或者少一个,都不重要
-视图类,序列化类,自动生成路由
-跟前端打通
# 5 跨域
-同源策略:不允许去不同的域发请求,协议,地址,端口都必须一致
-CORS:跨域资源共享(前后端配合,前端基本浏览器都支持,后端需要再响应头中加参数)
-简单请求和非简单请求
-简单请求只发一次真正的请求
-非简单请求发送两次,一次是OPTIONS请求,再一次是真正的请求
-写到中间件
-第三方 django-cors-headers的使用
-安装
-把app配置再项目中
-把中间件配置再项目中
-再配置文件中配置
面试题-如何防止公司的接口被第三方app,调用?
-你们的跨域只允许自己项目的前端访问:res['Access-Control-Allow-Origin'] = 'http://192.168.12.34:8080/'
-app存在跨域?不存在,设置成这样,防止不了app
-通过认证解决:大部分接口需要登录访问
-前后端加密传输:js逆向,app逆向
今日内容
1 自定义配置
# 再settings文件夹下新建common_settings.py
写入自定义的配置信息
# 首页轮播图显示的张数
BANNER_COUNT=2
# 再dev.py中导入
from .common_settings import *
# 以后。开发和上线公共的配置就可以放在自定义配置文件中
class BannerView(GenericViewSet,ListModelMixin):
serializer_class =BannerSerializer
#视图类里设置因为queryset对象是一个列表 所以[:xxx]0到xxx位置
queryset = Banner.objects.all().filter(is_delete=False,is_show=True)[:settings.BANNER_COUNT]
2 simpleui的使用
simpleui地址:https://simpleui.72wo.com/docs/simpleui/doc.html
# 目前写的项目的接口,都是主站,给用户看的,用的
# 后台管理:
-原生的admin,不需要写太多页面,自动生成,页面丑陋
-对原生admin的美化:xadmin,国外,simpleui
-django-vue-admin:前后端分离版后台管理
# 使用
-#### 1 pip3 install django-simpleui
-#### 2 再app中注册:
INSTALLED_APPS = [
'simpleui',
]
-#### 3 再配置文件中写
## simpleui的配置
import time
SIMPLEUI_CONFIG = {
'system_keep': False,
'menu_display': ['我的项目', '权限认证','主页',], # 开启排序和过滤功能, 不填此字段为默认排序和全部显示, 空列表[] 为全部不显示.
'dynamic': True, # 设置是否开启动态菜单, 默认为False. 如果开启, 则会在每次用户登陆时动态展示菜单内容
'menus': [
{
'name': '我的项目',
'icon': 'fab fa-apple',
'url': '/backend/' # 咱们用自己的
},
{
'app': 'auth',
'name': '权限认证',
'icon': 'fas fa-user-shield',
'models': [
{
'name': '用户',
'icon': 'fa fa-user',
'url': 'auth/user/'
},
{
'name': '组',
'icon': 'fa fa-user',
'url': 'auth/group/'
},
{
'name': '权限',
'icon': 'fa fa-user',
'url': 'auth/permission/'
}
]
},
{
'app': 'home',
'name': '主页',
'icon': 'fas fa-user-shield',
'models': [
{
'name': '轮播图',
'icon': 'fa fa-user',
'url': 'home/banner/'
},
]
},
]
}
# SIMPLEUI_LOGIN_PARTICLES = False
SIMPLEUI_HOME_INFO = False
-#####4 在admin.py中写 设置自定义一些按钮设置
@admin.register(models.Banner)
class EmployeAdmin(admin.ModelAdmin):
# 一行数据显示哪些字段
list_display = ('id', 'title', 'link', 'is_show')
# 增加自定义按钮
actions = ['make_copy']
def make_copy(self, request, queryset):
# 点击触发它
# queryset:选中的数据
# request 请求对象
print(queryset)
make_copy.short_description = '我叫按钮'
make_copy.confirm = '你是否执意要点击这个按钮?'
2.1监控大屏的设置
#首先拿到自己喜欢的模板 复制到自己项目,记得css、js等样式也要拿过来(最好放在static文件夹下 还要记得配置一下static) 然后对应路径需要修改
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
#写一个方法指向这个地址 就ok
#然后admin页面开始加标签
{
'app': 'home',
'name': '主页',
'icon': 'fas fa-user-shield',
'models': [
{
'name': '轮播图',
'icon': 'fa fa-user',
'url': 'home/banner/' #这个要设置对 不然不行
},
]
},
3 git介绍
# 版本控制器:公司协同开发,张三,李四在自己本地开发代码,开发了10天开发出v1版本,V2版本
-多人协同开发代码合并
-对版本进行管理,能切换回老版本
# git
什么是git:版本控制器 - 控制的对象是开发的项目代码
代码开发时间轴:需求1 => 版本库1 ==> 需求2 => 版本库2 => 版本库3(版本库1) => 版本库4(版本库2
# 版本管理软件:git ,svn(很老)
-svn:集中式管理,服务端(有个服务器放着)和客户端(开发人员)
-git:分布式管理,自己本地就能进行代码的提交,查看历史代码。。。
# git,github,gitee,gitlab
-git:软件,安装在操作系统上,对代码进行管理
-github:网站,远程代码仓库(开源为主),全球的开源软件,也有私有代码(公司人看)
-我们自己开发的代码,提交到github上开源,也可以私有
-gitee(码云):中国的github
-自己搭建远程仓库---》gitlab
4 git使用安装和使用
# 下载
https://git-scm.com/download
# 一路下一步
# 任意位置邮件,能看到
-git bash here
-git gui here
###### 重点:git的三个区域
工作区 暂存区 版本库
代码存放区域 代码改完放到暂存区 管理了历史代码
修改删除代码 才能提交到版本库 必须从暂存区提交过来
### 常用命令
# git 初始化
-git init # 初始化仓库,在某个想被git管理的文件夹下执行,会创建出 .git隐藏文件夹,代表该文件夹被git管理了
# 设置全局用户--》操作这个仓库的人是谁-->
git config --global user.name 'lqz'
git config --global user.email '306334678@qq.com'
#注:在全局文件 C:\Users\用户文件夹\.gitconfig新建用户信息,在所有仓库下都可以使用
# 设置局部用户---》只对当前仓库有效
git config user.name 'liuqingzheng'
git config user.email '3@qq.com'
#注:在当前仓库的.git文件夹下,config
# 查看仓库状态
git status # 查看仓库状态
git status -s # 简约显示
# 在仓库下新建一个文件,查看,会发现是红色的
# 空文件夹不会被git管理
# 从工作区把改变提交到暂存区
git add 文件名字
git add . # 把当前路径下所有改变都提交到暂存区
# 从暂存区,提交到版本库
git commit -m '注释,不加注释提交不了' # 把暂存区的更改,提交到版本库
git status # 没有红色和绿色---》当前仓库下所有变化都被记录到版本库中了,后期可以回到这个状态
# 查看版本库的版本信息
git log # 查看版本库的日志信息,当前在那个版本上,就只能看到之前的
git reflog # 简短一些日志,可以看所有的变化
# 恢复到某个版本
git reset --hard 版本号 # 指定版本库中某个版本恢复到工作区
# 工作区回滚
git checkout . # 恢复工作区,恢复到跟版本库一样的状态,但是新增的文件,由于没被版本管理,它不会操作它
# 把暂存区的变化,拉回到工作区(由绿变红)
git resetgit reset HEAD .
# 小练习
-在zmyh.py 中加入一行代码
-git status # 红色的zmyh.py,没有提交到暂存区
-git add . # 提交到暂存区
-git commit -m '注释' # 提交到 版本库
-删除 zmyh.py
-git status # 红色
-git add . # 提交到暂存区
-git commit -m '注释' # 提交到 版本库
# 到此,总共提交了三次(新建,修改了zmyh,删除了zmyh)
-git log #查看日志
-git reset --hard b9b7824 # 回到某个版本
-git reset --hard 5de4a6b
5 过滤文件
# 有些文件,不想被git管理,就要设置忽略文件
# 在仓库路径下新建 .gitignore--->在里面配置忽略文件 不要带.txt
""" 过滤文件内容
文件或文件夹名:代表所有目录下的同名文件或文件夹都被过滤
/文件或文件夹名:代表仓库根目录下的文件或文件夹被过滤
详细如下:
a.txt:项目中所有a.txt文件和文件夹都会被过滤
/a.txt:项目中只有根目录下a.txt文件和文件夹会被过滤
/b/a.txt:项目中只有根目录下的b文件夹下的a.txt文件和文件夹会被过滤
*x*:名字中有一个x的都会被过滤(*代表0~n个任意字符)
比如*.txt :txt结尾的都忽略
空文件夹不会被提交,空包会被提交,包可以被提交(包中有一个init空文件)
"""