Python自動化運維:Django之View視圖和Template

views詳解

http請求中產生兩個核心對象:
http請求:HttpRequest對象
http響應:HttpResponse對象
(1)?HttpRequest對象
當請求一個頁面時,Django 創建一個 HttpRequest對象包含原數據的請求。然后 Django 加載適當的視圖,通過 HttpRequest作為視圖函數的第一個參數。每個視圖負責返回一個HttpResponse目標。

path:???????請求頁面的全路徑,不包括域名method:?????請求中使用的HTTP方法的字符串表示。全大寫表示。例如if??req.method=="GET":do_something()elseif?req.method=="POST":do_something_else()
GET:?????????包含所有HTTP?GET參數的類字典對象
POST:???????包含所有HTTP?POST參數的類字典對象服務器收到空的POST請求的情況也是可能發生的,也就是說,表單form通過HTTP?POST方法提交請求,但是表單中可能沒有數據,因此不能使用if?req.POST來判斷是否使用了HTTP?POST?方法;應該使用??if?req.method=="POST"
COOKIES:?????包含所有cookies的標準Python字典對象;keys和values都是字符串。
FILES:??????包含所有上傳文件的類字典對象;FILES中的每一個Key都是<input?type="file"?name=""?/>標簽中?name屬性的值,FILES中的每一個value同時也是一個標準的python字典對象,包含下面三個Keys:filename:??????上傳文件名,用字符串表示content_type:???上傳文件的Content?Typecontent:???????上傳文件的原始內容
user:???????是一個django.contrib.auth.models.User對象,代表當前登陸的用戶。如果訪問用戶當前沒有登陸,user將被初始化為django.contrib.auth.models.AnonymousUser的實例。你可以通過user的is_authenticated()方法來辨別用戶是否登陸:if?req.user.is_authenticated();只有激活Django中的AuthenticationMiddleware時該屬性才可用
session:????唯一可讀寫的屬性,代表當前會話的字典對象;自己有激活Django中的session支持時該屬性才可用。
META:???????一個標準的Python字典包含所有可用的HTTP頭。可用標題取決于客戶端和服務器,但這里是一些例子:CONTENT_LENGTH???????–?請求體的長度(一個字符串)。CONTENT_TYPE?????????–?請求體的類型。HTTP_ACCEPT??????????-?為響應–可以接受的內容類型。HTTP_ACCEPT_ENCODING?–?接受編碼的響應HTTP_ACCEPT_LANGUAGE?–?接受語言的反應HTTP_HOST????????????–?客戶端發送的HTTP主機頭。HTTP_REFERER?????????–?參考頁面HTTP_USER_AGENT??????–?客戶端的用戶代理字符串。QUERY_STRING?????????–?查詢字符串,作為一個單一的(分析的)字符串。REMOTE_ADDR??????????–?客戶端的IP地址REMOTE_HOST??????????–?客戶端的主機名REMOTE_USER??????????–?用戶通過Web服務器的身份驗證。REQUEST_METHOD???????–?字符串,如"GET"或"POST"SERVER_NAME??????????–?服務器的主機名SERVER_PORT??????????–?服務器的端口(一個字符串)。

(2)HttpResponse對象
對于HttpRequest對象來說,是由django自動創建的,但是,HttpResponse對象就必須我們自己創建。每個view請求處理方法必須返回一個HttpResponse對象。
在HttpResponse對象上擴展的常用方法:
??? 頁面渲染:render(推薦),render_to_response,
??? 頁面跳轉:redirect
??? locals:?? 可以直接將對應視圖函數中所有的變量傳給模板???get():如果key對應多個value,get()返回最后一個value。

23e182e6d901c9b1d8515184423ecc60.png

值得注意的是對于頁面渲染的方法中,render和render_to_response使用方法和功能類似,但是render功能更為強大,推薦使用
3. render()
render(request, template_name, context=None, content_type=None, status=None, using=None)[source]
結合給定的模板與一個給定的上下文,返回一個字典HttpResponse在渲染文本對象
所需的參數
?template_name 一個模板的使用或模板序列名稱全稱。如果序列是給定的,存在于第一個模板將被使用。
可選參數

context????一組字典的值添加到模板中。默認情況下,這是一個空的字典。
content_type????MIME類型用于生成文檔。
status????為響應狀態代碼。默認值為200
using????這個名字一個模板引擎的使用將模板。
def?register(request):'''request就是HttpRequest對象HttpResponse常用的擴展對象render:頁面渲染,可將參數以字典的形式傳遞給頁面?也可以通過locals()將參數傳遞過去,沒有進行頁面跳轉,url沒有改變redirect:頁面跳轉,url發生改變:param?request::return:'''#?獲取請求方法if?request.method?==?"GET":'''對注冊來分析,當我們進入注冊頁面的時候,一般都是GET請求'''#?獲取GET里面的信息ret?=?request.GETprint("GET信息",ret)??#?輸出?GET信息?<QueryDict:?{}>?是一個字典對象return?render(request,"register.html")elif?request.method?==?"POST":'''通過表單提交之后,變成了POST請求'''#?獲取POST里面的信息ret?=?request.POSTprint("POST信息",ret)'''輸出??POST信息?<QueryDict:?{'csrfmiddlewaretoken':?['oeKNHGKKm9Ip6B4Y2bfZM16lD2ECoTylPzX7rKzEUO5baf5Dfw4uB2zz5zz61fL9'],?'username':?['Jason'],?'pwd':?['123'],?'gender':?['1']}>也是一個字典對象,可以通過句點獲取表單提交過來的數據'''return?redirect("/login/")def?login(request):return?render(request,"login.html")

模板系統Template
組成:HTML代碼+邏輯控制代碼
邏輯控制代碼的組成:
1、變量,使用雙大括號來引用變量:` var_name `

#?視圖函數
def?index(request):people={"username":"Jason","age":18,"gender":"男"}username="Jason"return?render(request,"index.html",{"username":username,"people":people})
<!--模板文件-->
<!DOCTYPE?html>
<html?lang="en">
<head><meta?charset="UTF-8"><title>Title</title>
</head>
<body><!--通過雙大括號來獲取變量--><h1>歡迎{{?username?}}</h1><!--通過句點符號來實現深度查詢--><h2>用戶名:{{?people.username?}}</h2><h2>年齡:{{?people.age?}}</h2><h2>性別:{{?people.gender?}}</h2>
</body>
</html>

2、過濾器,語法格式:{{obj|filter:param}}
(1)add???
??? 使用形式為:{{ value | add: "2"}}
??? 意義:將value的值增加2
(2)addslashes
??? 使用形式為:{{ value | addslashes }}
??? 意義:在value中的引號前增加反斜線
(3)capfirst
??? 使用形式為:{{ value | capfirst }}
??? 意義:value的第一個字符轉化成大寫形式
(4)cut
??? 使用形式為:{{ value | cut:arg}}, 例如,如果value是“String with spaces” arg是" "那么輸出是"Stringwithspaces"
??? 意義:從給定value中刪除所有arg的值
(5)date
??? 使用形式為::
??????? (a) {{ value | date:"D d M Y" }},例如,如果value是一個datetime對象(datetime.datetime.now())那么輸出將是字符串"Wed 09 Jan 2008"
??????? (b) {{ value | date }},這種形式沒有格式化字符串,這時候,格式化字符串會自動采用DATE_FORMAT所設置的形式。
??? 意義:將日期格式數據按照給定的格式輸出

(6)default
???? 使用形式:{{ value | default: "nothing" }},例如,如果value是“”,那么輸出將是nothing
???? 意義:如果value的意義是False,那么輸出使用缺省值
(7)default_if_none
???? 使用形式:{{ value | default_if_none:"nothing" }},例如,如果value是None,那么輸出將是nothing
???? 意義:如果value是None,那么輸出將使用缺省值
(8)dictsort
??? 意義:如果value的值是一個字典,那么返回值是按照關鍵字排序的結果
??????????? 使用形式:{{ value | dictsort:"name"}},例如,
??????????? 如果value是:

??????[{'name':?'zed',?'age':?19},{'name':?'amy',?'age':?22},{'name':?'joe',?'age':?31},]那么,輸出是:[{'name':?'amy',?'age':?22},{'name':?'joe',?'age':?31},{'name':?'zed',?'age':?19},]

(9)dictsortreversed
?? 意義:如果value的值是一個字典,那么返回值是按照關鍵字排序的結果的反序
?? 使用形式:與上述(8)完全相同。
(10)divisibleby
?? 使用形式:{{ value | divisibleby:arg}},如果value是21,arg是3,那么輸出將是True
?? 意義:如果value能夠被arg整除,那么返回值將是True
(11)escape
?? 使用形式:{{ value | escape}}
?? 意義:替換value中的某些字符,以適應HTML格式,包括:

????<?is?converted?to?&lt;>?is?converted?to?&gt;'?(single?quote)?is?converted?to?&#39;"?(double?quote)?is?converted?to?&quot;&?is?converted?to?&amp;

escape僅僅在輸出的時候才起作用,所以escape不能夠用在鏈式過濾器的中間,
他應該總是最后一個過濾器,如果想在鏈式過濾器的中間使用,那么可以使用force_escape

(12)escapejs
?? 使用形式:{{ value | escapejs }}
?? 意義:替換value中的某些字符,以適應JAVASCRIPT和JSON格式。
(13)filesizeformat
?? 使用形式:{{ value | filesizeformat }}
?? 意義:格式化value,使其成為易讀的文件大小,例如:13KB,4.1MB等。
(14)first
?? 使用形式:{{ value | first }}
?? 意義:返回列表中的第一個Item,例如,如果value是列表['a','b','c'],那么輸出將是'a'。
(15)floatformat
?? 使用形式:{{ value | floatformat}}或者{{value|floatformat:arg}},
?? arg可以是正數也可以是負數。沒有參數的floatformat相當于floatformat:-1
?? (1)如果不帶arg,那么引擎會四舍五入,同時最多只保留一位小數。

    34.23234????{{value|floatformat}}????34.234.00000????{{value|floatformat}}????3434.26000????{{value|floatformat}}????34.3


?? (2)如果arg是正數,那么引擎會四舍五入,同時保留arg位的小數。

???  ?34.23234????{{value|floatformat:3}}????34.23234.00000????{{value|floatformat:3}}????34.00034.26000????{{value|floatformat:3}}????34.260


?? (3)如果arg是負數,那么引擎會四舍五入,如果有小數部分,那么保留arg位小數;否則,則沒有任何小數部分。

    34.23234????{{value|floatformat:"-3"}}????34.23234.00000????{{value|floatformat:"-3"}}????3434.26000????{{value|floatformat:"-3"}}????34.26

(16)get_digit
?? 使用形式:{{ value | get_digit:"arg"}},例如,如果value是123456789,arg是2,那么輸出是8
?? 意義:給定一個數字,返回,請求的數字,記住:1代表最右邊的數字,如果value不是合法輸入,
???????? 那么會返回所有原有值。
(17)iriencode
?? 使用形式:{{value | iriencode}}
?? 意義:如果value中有非ASCII字符,那么將其進行抓化成URL中適合的編碼,如果value已經進行過URLENCODE,
???????? 改操作就不會再起作用。
(18)join
?? 使用形式:{{ value | join:"arg"}},如果value是['a','b','c'],arg是'//'那么輸出是a//b//c
?? 意義:使用指定的字符串連接一個list,作用如同python的str.join(list)
19)last
?? 使用形式:{{ value | last }}
?? 意義:返回列表中的最后一個Item
20)length
?? 使用形式:{{ value | length }}
?? 意義:返回value的長度。
(21)length_is
?? 使用形式:{{ value | length_is:"arg"}}
?? 意義:返回True,如果value的長度等于arg的時候,例如:如果value是['a','b','c'],arg是3,那么返回True
22)linebreaks
?? 使用形式:{{value|linebreaks}}
?? 意義:value中的"\n"將被<br/>替代,并且整個value使用</p>包圍起來,從而適和HTML的格式
(23)linebreaksbr
?? 使用形式:{{value |linebreaksbr}}
?? 意義:value中的"\n"將被<br/>替代
(24)linenumbers
?? 使用形式:{{value | linenumbers}}
?? 意義:顯示的文本,帶有行數。
(25)ljust
?? 使用形式:{{value | ljust}}
?? 意義:在一個給定寬度的字段中,左對齊顯示value
(25)center
?? 使用形式:{{value | center}}
?? 意義:在一個給定寬度的字段中,中心對齊顯示value?
(25)rjust
?? 使用形式:{{value | rjust}}
?? 意義:在一個給定寬度的字段中,右對齊顯示value
(26)lower
?? 使用形式:{{value | lower}}
?? 意義:將一個字符串轉換成小寫形式
(27)make_list
?? 使用形式:{{value | make_list}}
?? 意義:將value轉換成一個list,對于字符串,轉換成字符list;對于整數,轉換成整數list
?? 例如value是Joel,那么輸出將是[u'J',u'o',u'e',u'l'];value是123,那么輸出將是[1,2,3]
(28)pluralize
?? 使用形式:{{value | pluralize}},或者{{value | pluralize:"es"}},或者{{value | pluralize:"y,ies"}}
?? 意義:如果value不是1,則返回一個復數后綴,缺省的后綴是's'
(29)random
?? 使用形式:{{value | random}}
?? 意義:從給定的list中返回一個任意的Item
(30)removetags
?? 使用形式:{{value | removetags:"tag1 tag2 tag3..."}}
?? 意義:刪除value中tag1,tag2....的標簽。例如,如果value是<b>Joel</b> <button>is</button> a <span>slug</span>
??????? tags是"b span",那么輸出將是:Joel <button>is</button> a slug
(31)safe
?? 使用形式:{{value | safe}}
?? 意義:當系統設置autoescaping打開的時候,該過濾器使得輸出不進行escape轉換
?(32)safeseq
?? 與上述safe基本相同,但有一點不同的就是:safe是針對字符串,而safeseq是針對多個字符串組成的sequence
(33)slice
?? 使用形式:{{some_list | slice:":2"}}
?? 意義:與python語法中的slice相同,:2表示第一的第二個元素
?(34)slugify
??? 使用形式:{{value | slugify}}
??? 意義:將value轉換成小寫形式,同事刪除所有分單詞字符,并將空格變成橫線
??????? 例如:如果value是Joel is a slug,那么輸出將是joel-is-a-slug
(35)stringformat
??? 這個不經常用,先不說
(36)striptags
?? 使用形式:{{value | striptags}}
?? 意義:刪除value中的所有HTML標簽
(37)time
?? 使用形式:{{value | time:"H:i"}}或者{{value | time}}
?? 意義:格式化時間輸出,如果time后面沒有格式化參數,那么輸出按照TIME_FORMAT中設置的進行。
(38)title
?? 轉換一個字符串成為title格式。
(39)truncatewords
??? 使用形式:{{value | truncatewords:2}}
??? 意義:將value切成truncatewords指定的單詞數目
??? 例如,如果value是Joel is a slug 那么輸出將是:Joel is ...
(40)truncatewords_html
??? 使用形式同(39)
??? 意義:truncation點之前如果某個標簽打開了,但是沒有關閉,那么在truncation點會立即關閉。
??????? 因為這個操作的效率比truncatewords低,所有只有在value是html格式時,才考慮使用。
(41)upper
?? 轉換一個字符串為大寫形式
(42)urlencode
??? 將一個字符串進行URLEncode
(43)urlize
??? 意義:將一個字符串中的URL轉化成可點擊的形式。
??? 使用形式:{{ value | urlize }}
??? 例如,如果value是Check out www.djangoproject.com,那么輸出將是:

?Check?out?<a?href="http://www.djangoproject.com">www.djangoproject.com</a>

(44)urlizetrunc
??? 使用形式:{{ value | urlizetrunc:15}}
??? 意義:與(43)相同,但是有一點不同就是現實的鏈接字符會被truncate成特定的長度,后面以...現實。
(45)wordcount
?? 返回字符串中單詞的數目
(46)wordwrap
??? 使用形式:{{value | wordwrap:5}}
??? 意義:按照指定的長度包裝字符串
??? 例如,如果value是Joel is a slug,那么輸出將會是:

????Joelis?aslug


(47)timesince
??? 使用形式:{{value | timesince:arg}}
??? 意義:返回參數arg到value的天數和小時數
??? 例如,如果 blog_date 是一個日期實例表示 2006-06-01 午夜, 而 comment_date 是一個日期實例表示 2006-06-01 早上8點,
????????? 那么 {{ comment_date|timesince:blog_date }} 將返回 "8 hours".
(48)timeuntil
??? 使用形式:{{value | timeuntil}}
??? 意義:與(47)基本相同,一個不同點就是,返回的是value距離當前日期的天數和小時數

3、標簽,語法格式:{% tags %}

#?views函數
def?index(request):temp_list=["星期一","星期二","星期三","星期四","星期五","星期六","星期日"]return?render(request,"index.html",{"temp_list":temp_list})
<!--HTML模板-->
<!DOCTYPE?html>
<html?lang="en">
<head><meta?charset="UTF-8"><title>Title</title>
</head>
<body>
<!--標簽的使用-->
<!--對于for來說,不支持中斷循環,也不支持continue語句,內置一個forloop模板變量forloop.counter表示循環的次數forloop.first當第一次循環的時候,為True
-->
{%?for?temp?in?temp_list?%}<!--對于if來說,不允許同一標簽里同時出現and和or,這樣容易產生歧義-->{%?if?temp?==?"星期一"?or?temp?==?"星期三"?or?temp?==?"星期五"?or?temp?==?"星期日"%}<h2>不上班</h2>{%?elif?temp?==?"星期二"?or?temp?==?"星期四"%}<h3>上班</h3>{%?else?%}<h1>吃大餐</h1>{%?endif?%}{%?empty?%}
<!--當temp_list為空,會走這里,和for循環并列--><h1>放假時間太多了</h1>
{%?endfor?%}
<!--?其他標簽:?{%?csrf_token?%}:用于生成csrf_token標簽,用于防止跨站攻擊驗證,如果在views中用的是render_to_response方法?則不會生效,一般會和表單一起提交給后臺?{%?url?"reg"?%}:引用路由配置的地址,也就是路由中的name值,如:?<form?method="post"?action="{%?url?"reg"?%}">?...?</form>?url(r"^register",views.register,name='reg')?{%?with?total=fhjsaldfhjsdfhlasdfhljsdal?%}?{{?total?}}?{%?endwith?%}:使用更簡單的變量名代替復雜的變量名{%?verbatim?%}?{%?endverbatim?%}:禁止render{%?load?tz?%}:加載標簽庫?-->?</body>?
</html>

4、自定義filter和simple_tag
步驟:
a:在app中創建tempaltetags模塊
b:創建任意的.py文件,如:my_tags.py
c:在使用自定義simple_tag和filter的html文件中導入之前創建的my_tags.py:{% load my_tags %}
d:使用simple_tag和filter

#自定義標簽和過濾器
from?django?import?template
register?=?template.Library()???#?regsiter?的名字是固定的,不可改變
@register.filter()
def?filter_multi(x,y):'''自定義過濾器:param?x:?模板中過濾器左邊的參數:param?y:?模板中過濾器右邊的參數:return:'''return?x*ydef?simple_tag_multi(x,y):'''自定義標簽:param?x::param?y::return:'''return?x*y
#?views函數
def?index(request):age?=?18return?render(request,"index.html",{"age":age})<!--引入自定義標簽-->
{%?load?my_tags?%}
<!DOCTYPE?html>
<html?lang="en">
<head><meta?charset="UTF-8"><title>Title</title>
</head>
<body><!--自定義filter限制參數個數,只能傳遞一個參數,比如只能傳2,可以用在控制語句中--><h1>{{?age|filter_multi:2?}}</h1><!--自定義tag不限制參數個數?但是不能用在控制語句中--><h1>{%?simple_tag_multi?3?5?%}</h1>
</body>
</html>

5、模板繼承extends
??? {% include %}:該標簽允許在當前模板中包含其他模板,標簽的參數是所要包含的模板名稱,可以是一個變量,也可以是用單/雙引號硬編碼的字符串


{%?endblock?%}


本文轉自 炫維 51CTO博客,原文鏈接:
http://blog.51cto.com/xuanwei/1980449

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/393200.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/393200.shtml
英文地址,請注明出處:http://en.pswp.cn/news/393200.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

leetcode491. 遞增子序列(回溯算法)

給定一個整型數組, 你的任務是找到所有該數組的遞增子序列&#xff0c;遞增子序列的長度至少是2。 示例: 輸入: [4, 6, 7, 7] 輸出: [[4, 6], [4, 7], [4, 6, 7], [4, 6, 7, 7], [6, 7], [6, 7, 7], [7,7], [4,7,7]] 代碼 class Solution {List<List<Integer>>…

java重入鎖,再探JAVA重入鎖

之前的文章中簡單的為大家介紹了重入鎖JAVA并發之多線程基礎(2)。這里面也是簡單的為大家介紹了重入鎖的幾種性質&#xff0c;這里我們就去探索下里面是如何實現的。我們知道在使用的時候&#xff0c;必須鎖先有定義&#xff0c;然后我們再拿著當前的鎖進行加鎖操作&#xff0c…

azure服務器_如何使用Azure Functions和SendGrid構建無服務器報表服務器

azure服務器It’s 2018 and I just wrote a title that contains the words “Serverless server”. Life has no meaning.那是2018年&#xff0c;我剛剛寫了一個標題&#xff0c;其中包含“無服務器服務器”一詞。 生活沒有意義。 Despite that utterly contradictory headli…

【GoWeb開發實戰】Cookie

cookie Web開發中一個很重要的議題就是如何做好用戶的整個瀏覽過程的控制&#xff0c;因為HTTP協議是無狀態的&#xff0c;所以用戶的每一次請求都是無狀態的&#xff0c;我們不知道在整個Web操作過程中哪些連接與該用戶有關&#xff0c;我們應該如何來解決這個問題呢&#xff…

PhotoKit 照片庫的管理-獲取圖像

PHAsset部分屬性解析 1、HDR 和全景照片 mediaSubtypes 屬性驗證資源庫中的圖像在捕捉時是否開啟了 HDR&#xff0c;拍攝時是否使用了相機應用的全景模式。 2、收藏和隱藏資源 要驗證一個資源是否被用戶標記為收藏或被隱藏&#xff0c;只要檢查 PHAsset 實例的 favorite 和 hid…

cmail服務器安裝后無法登錄的解決辦法

安裝cmailserver 5.4.6軟件安裝、注冊都非常順利&#xff0c;webmail頁面也都正常打開&#xff0c;但是一點“登錄”就提示錯誤&#xff1a; Microsoft VBScript 運行時錯誤 錯誤 800a01ad ActiveX 部件不能創建對象: CMailCOM.POP3.1 /mail/login.asp&#xff0c;行 42 點“…

matlab對人工智能,MATLAB與人工智能深度學習和機器學習.PDF

MATLAB與人工智能深度學習和機器學習MATLAB 與人工智能&#xff1a;深度學習有多遠&#xff1f;© 2017 The MathWorks, Inc.1機器學習8機器學習無處不在? 圖像識別 [TBD]? 語音識別? 股票預測? 醫療診斷? 數據分析? 機器人? 更多……9什么是機器學習&#xff1f;機…

leetcode1471. 數組中的 k 個最強值(排序)

給你一個整數數組 arr 和一個整數 k 。 設 m 為數組的中位數&#xff0c;只要滿足下述兩個前提之一&#xff0c;就可以判定 arr[i] 的值比 arr[j] 的值更強&#xff1a; |arr[i] - m| > |arr[j] - m| |arr[i] - m| |arr[j] - m|&#xff0c;且 arr[i] > arr[j] 請返回…

Spring中WebApplicationInitializer的理解

現在JavaConfig配置方式在逐步取代xml配置方式。而WebApplicationInitializer可以看做是Web.xml的替代&#xff0c;它是一個接口。通過實現WebApplicationInitializer&#xff0c;在其中可以添加servlet&#xff0c;listener等&#xff0c;在加載Web項目的時候會加載這個接口實…

使用fetch封裝請求_關于如何使用Fetch API執行HTTP請求的實用ES6指南

使用fetch封裝請求In this guide, I’ll show you how to use the Fetch API (ES6) to perform HTTP requests to an REST API with some practical examples you’ll most likely encounter.在本指南中&#xff0c;我將向您展示如何使用Fetch API(ES6 )來執行對REST API的 HTT…

hadoop集群中客戶端修改、刪除文件失敗

這是因為hadoop集群在啟動時自動進入安全模式 查看安全模式狀態&#xff1a;hadoop fs –safemode get 進入安全模式狀態&#xff1a;hadoop fs –safemode enter 退出安全模式狀態&#xff1a;hadoop fs –safemode leave轉載于:https://www.cnblogs.com/lishengnan/p/a123.ht…

OpenStack nova-network 支持多vlan技術實現片段代碼

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748

Rest API

什么是接口測試 接口測試又稱 API 測試 Application Programming Interface 接口測試是測試系統組件間接口的一種測試。重點關注數據傳遞。 接口測試一般會用于多系統間交互開發&#xff0c;或者擁有多個子系統的應用系統開發的測試。 為什么要做接口測試 很多系統關聯都是基于…

php循環checkbox,php循環刪除checkbox | 學步園

一、首先要了解sql語句$SQLdelete from user where id in (1,2,4);表單大概是&#xff1a;form action methodpost input nameID_Dele[] typecheckbox idID_Dele[] value1input nameID_Dele[] typecheckbox idID_Dele[] value2input nameID_Dele[] type首先要了解sql語句$SQL&q…

leetcode1451. 重新排列句子中的單詞(排序)

「句子」是一個用空格分隔單詞的字符串。給你一個滿足下述格式的句子 text : 句子的首字母大寫 text 中的每個單詞都用單個空格分隔。 請你重新排列 text 中的單詞&#xff0c;使所有單詞按其長度的升序排列。如果兩個單詞的長度相同&#xff0c;則保留其在原句子中的相對順序…

Java+Oracle實現事務——JDBC事務

J2EE支持JDBC事務、JTA事務和容器事務事務&#xff0c;這里說一下怎樣實現JDBC事務。 JDBC事務是由Connection對象所控制的&#xff0c;它提供了兩種事務模式&#xff1a;自己主動提交和手動提交&#xff0c;默認是自己主動提交。 自己主動提交就是&#xff1a;在JDBC中。在一個…

開源項目貢獻者_我如何從一名貢獻者轉變為一個開源項目維護者

開源項目貢獻者by Dhanraj Acharya通過Dhanraj Acharya 我如何從一名貢獻者轉變為一個開源項目維護者 (How I went from being a contributor to an Open Source project maintainer) I was a lone software developer. When I was in college, I attended the KDE conference…

網絡攝像頭CVE

CVE-2018-9995 rtsp未授權訪問 rtsp后綴整理&#xff1a; Axis&#xff08;安訊士&#xff09; rtsp:// 192.168.200.202/axis-media/media.amp?videocodech264&resolution1280x720 rtsp://IP地址/mpeg4/media.amp rtsp://IP地址/安迅士/AXIS-media/media.amp123D-Link …

Centos中不從skel目錄里向其中復制任何文件錯誤的解決方法

[rootlocalhost www]# useradd -d /webserver/www/ ithovcom useradd&#xff1a;警告&#xff1a;此主目錄已經存在。 不從 skel 目錄里向其中復制任何文件。 [rootlocalhost www]# ls -a .&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp; .. 發現沒…

leetcode91. 解碼方法

一條包含字母 A-Z 的消息通過以下方式進行了編碼&#xff1a; ‘A’ -> 1 ‘B’ -> 2 … ‘Z’ -> 26 給定一個只包含數字的非空字符串&#xff0c;請計算解碼方法的總數。 示例 1: 輸入: “12” 輸出: 2 解釋: 它可以解碼為 “AB”&#xff08;1 2&#xff09;或者…