1. 程式人生 > 其它 >go 執行exec.Command中帶有nohup的操作會掛起

go 執行exec.Command中帶有nohup的操作會掛起

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: 可以簡寫成 @  以後使用這個多