go 執行exec.Command中帶有nohup的操作會掛起
阿新 • • 發佈:2022-04-02
drf內容
# 1 drf入門 -前後端開發模式:混合(模板中套模板語法),分離(後端只寫介面) -API介面---》前後端互動的一種模式---》介面 -postman:介面測試工具 -restful規範:10條 -drf:django的一個app,方便我們快速寫介面 # 2 drf的序列化元件 -可以序列化:把模型類---》字典--》通過Response返回 -可以反序列化:把前端傳入的json格式,報錯到資料庫中 -資料校驗:欄位自己的,區域性,全域性 -Serializer:在類中寫要序列化的欄位,重寫create,update -ModelSerializer:繼承了Serializer,寫了create,update,一般不需要重寫 -class Meta models fields exclude depth extra_kwargs -重寫欄位 -區域性和全域性鉤子跟原來一樣 -區域性,全域性鉤子原始碼:#is_valid---->self.run_validation-(執行Serializer的run_validation)-->self.to_internal_value(data)---(執行Serializer的run_validation:485行) -序列化類原始碼分析:many=True,生成的物件是ListSerializer類的物件, __new__控制了物件的生成:ListSerializer[ser物件,ser物件] -面試常考題:__init__和__new__區別 -欄位類,欄位引數:read_only,write_only -檢視類和序列化類溝通的橋樑:context -serializer = AccountSerializer(account, context={'request': request}) -序列化類中:self.context.get('request') -檢視類中:serializer.context.get('xxx') # 3 請求與相應 -Request類的物件--》APIView以後的request物件都是新的 -request.data -request.query_params -重寫了__getattr__:物件.屬性 不存在的時候觸發 -可以解析的請求編碼 -urlencoded,formdate,json -django預設只能解析urlencoded,formdate -drf解析三種,三個類控制 -區域性使用,全域性使用(一般不配置) -Response類的物件 -data:給前端的 -header:相應頭 -status:相應狀態碼 -響應格式,區域性和全域性配置 # 4 檢視類 -兩個檢視基類 APIView:類屬性authentication_classes,permission_classes GenericAPIView:方法和類屬性 -5個檢視擴充套件類 -9個檢視子類 -檢視集: ViewSetMixin, ViewSet, GenericViewSet, ModelViewSet, ReadOnlyModelViewSet # 5 路由 -三種寫法 -基本寫法 -檢視類繼承ViewSetMixin寫法 as_view中傳字典 -自動生成路由 -SimpleRouter,DefaultRouter -action裝飾器,檢視類中方法上的 # 6 認證,許可權,頻率 -登陸認證 -登陸成後用沒用許可權訪問 -普通的許可權控制 -rbac許可權控制 -訪問頻率 -區域性使用全域性使用,區域性禁用 # 7 過濾,排序,分頁--》GenericAPIView -過濾 -自帶的 -第三方 -自定義的 -排序 -內建的 -分頁:三種分頁方式 -全域性異常:寫一個函式,配置一下,處理過後統一返回格式 # 8 介面文件編寫 -自動生成 -手寫 -錄入第三方 # 9 jwt認證 -原理是什麼 -base64編碼和專門 -django中如何使用jwt -快速簽發和認證 -基於auth的user表簽發,可以指定返回格式 -認證類,許可權類 -基於自己的user表簽發和認證 -自己寫登入方法 -自己寫認證類 # 10 混合的後臺管理---》快速的寫出一個符合rbac許可權的管理系統 -admin---》美化---》simpleui # 11 rbac許可權 # 考試題---》參照筆記---》如果能寫出來,一點問題都沒有 # 面試常考題:__init__和__new__區別 -__init__:對物件進行初始化 物件= 類(name=lqz)--》觸發__init__的執行完成初始化,self.name=name-->在執行__init__之前,物件已經產生了,物件什麼時候產生的? -__new__:創建出空物件,在__init__之前完成的 -重寫它,使得構造的物件不是眼看到的物件 # 面試常考題:魔法方法---》一類中:__名字__方法---》不需要主動觸發,在某種情況下會呼叫 -非常非常多:https://www.cnblogs.com/liuqingzheng/articles/9949568.html __str__:print(物件), __inti__:類(), __setattr__ __getattr__ __setitem__ __call__:物件()觸發
今日內容
前端介紹
vue介紹特性介紹
快速使用vue
模板語法之插值
指令系統之文字指令
指令系統之事件指令
1 前端介紹
# 1 HTML(5)、CSS(3)、JavaScript(ES5、ES6):編寫一個個的頁面 -> 給後端(PHP、Python、Go、Java) -> 後端嵌入模板語法 -> 後端渲染完資料 -> 返回資料給前端 -> 在瀏覽器中檢視 # javascript=ecmascript+dom+bom 2015年es6--》格式化字串 `` # 2 Ajax的出現 -> 後臺傳送非同步請求,Render+Ajax混合 # 3 單用Ajax(載入資料,DOM渲染頁面):前後端分離的雛形 # 4.Angular框架的出現(1個JS框架):出現了“前端工程化”的概念(前端也是1個工程、1個專案) # 5 React、Vue框架:當下最火的2個前端框架(Vue:國人喜歡用,React:外國人喜歡用) # 6 移動開發(Android+IOS) + Web(Web+微信小程式+支付寶小程式) + 桌面開發(Windows桌面):前端 -> 大前端 # 移動端混合開發:原生+頁面---》支付寶--》口碑 # 7 一套程式碼在各個平臺執行(大前端):谷歌Flutter(Dart語言:和Java很像)可以執行在IOS、Android、PC端 # 8 在Vue框架的基礎性上 uni-app:一套編碼 編到10個平臺 https://uniapp.dcloud.io/case.html # 9 在不久的將來 ,前端框架可能會一統天下 # html css(less,sass) js jq,bootstrap es6 webpack vue react 小程式開發 node git mongodb
2 vue介紹特性介紹
# vue介紹 Vue (讀音 /vjuː/,類似於 view) 是一套用於構建使用者介面的漸進式框架 與其它大型框架不同的是,Vue 被設計為可以自底向上逐層應用 Vue 的核心庫只關注檢視層,不僅易於上手,還便於與第三方庫或既有專案整合 可以一點一點地使用它,只用一部分,也可以整個工程都使用它 js的框架,跟jq是一類東西 bootstrap:ui框架不是js框架(css樣式) vue中使用ui可以引入bootstrap,elementui(餓了麼團隊出的),Vant(移動端ui:有贊),ant-design-vue(ant-design本身是react的ui庫) # 版本: -主流:2.x -最新:3.x # 官方有教程:https://cn.vuejs.org/v2/guide/ # M-V-VM思想 ----》mvc,mtv,mvp:安卓分層架構 Model :vue物件的data屬性裡面的資料,這裡的資料要顯示到頁面中,js中變數 View :vue中資料要顯示的HTML頁面,在vue中,也稱之為“檢視模板” (HTML+CSS) ViewModel:vue中編寫程式碼時的vm物件,它是vue.js的核心,負責連線 View 和 Model資料的中轉,保證檢視和資料的一致性,所以前面程式碼中,data裡面的資料被顯示中p標籤中就是vm物件自動完成的(雙向資料繫結:JS中變數變了,HTML中資料也跟著改變) 以後不需要顯示的使用dom操作,jquery的作用就不大了 # 元件化開發,單頁面開發 -vue專案---》index.html頁面---》看到的變化,都是元件的切換 -頁面元件--》放了小元件 -在index.html中替換 元件,就實現頁面的變化
3 快速使用vue
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!-- <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>-->
<script src="./js/vue.js"></script>
</head>
<body>
<div id="app" class="div_cls">
<h1>我的名字是:{{name}}</h1>
<input type="text" v-model="text">
<hr>
{{text}}
</div>
</body>
<script>
// div(不一定是div) 被vue託管了,在div內部,就可以使用vue的語法:模板,指令系統
var vm =new Vue({
// el:"#app",
el:".div_cls",
data:{
name:"lqz",
text:""
}
})
</script>
</html>
# 在瀏覽器中開啟除錯---》console---》vm._data['name']="xxx"--->頁面跟著變了
4 模板語法之插值
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!-- <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>-->
<script src="./js/vue.js"></script>
</head>
<body>
<div id="app">
<h1>用兩個大括號包裹的叫插值,可以寫js程式碼</h1>
<h3>{{name}}</h3>
<h3>{{age}}</h3>
<h3>{{list1}}</h3>
<h3>{{list1[0]}}</h3>
<h3>{{obj1.name}}</h3>
<h3>{{link1}}</h3>
<h3>{{1==1}}</h3>
<h3>三目運算子:{{10>20?'是':'否'}}</h3>
</div>
</body>
<script>
var vm =new Vue({
el:"#app",
data:{
name:"lqz",
age: 18, // 數值
list1: [1,2,3,4], // 陣列
obj1: {name: 'lqz', age: 19}, // 物件
link1: '<a href="https://www.baidu.com">百度一下 你就知道</a>'
}
})
</script>
</html>
# 插值可以放變數和少量js程式碼
5 指令系統之文字指令
v-xx屬性都是vue的指令系統
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="./js/vue.js"></script>
</head>
<body>
<div id="app">
<h1>文字指令--v-html-->會把變數的值渲染到標籤中,如果字串是標籤,顯示標籤的樣子</h1>
<p v-html="name"></p>
<p v-html="link1"></p>
<h1>文字指令--v-text-->會把變數的值渲染到標籤中,如果字串是標籤,不會是標籤,字串原樣顯示</h1>
<p v-text="name"></p>
<p v-text="link1"></p>
<h1>文字指令--v-show-->控制標籤是否顯示:true和false,其實在頁面中,但是不現實display:none</h1>
<div v-show="show">
我是div
</div>
<h1>文字指令--v-if-->控制標籤是否顯示:true和false,真正的標籤不存在了,dom操作,效能低</h1>
<div v-if="show1">
我是div222
</div>
</div>
</body>
<script>
var vm =new Vue({
el:"#app",
data:{
name:'lqz',
link1: '<a href="https://www.baidu.com">百度一下 你就知道</a>',
show:true,
show1:true,
}
})
</script>
</html>
6 指令系統之事件指令
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="./js/vue.js"></script>
</head>
<body>
<div id="app">
<!-- <button v-on:click="handleClick">點我顯示隱藏下面的div</button>-->
<button @click="handleClick">點我顯示隱藏下面的div</button>
<div v-if="is_show">
我是div
</div>
</div>
</body>
<script>
var vm = new Vue({
el: "#app",
data: {
is_show: true,
},
methods: {
handleClick() {
// 把show的值取反,this代指vue物件,vm物件
this.is_show = !this.is_show
}
}
})
</script>
</html>
v-on:click='xx'
v-on: 可以簡寫成 @ 以後使用這個多