1. 程式人生 > >大四實習期間公司遇到的一些知識點

大四實習期間公司遇到的一些知識點

訪問 類型 check 名稱 xhtml col 數據流 alert abc

計算機知識點:

CMD裏面 ping 域名, 就知道服務器是什麽

臺式機連接無線網:
一、無線網卡
二、無線網卡的驅動(驅動精靈)


訪問: http://httpbin.org/get 獲取:
{
"args": {

},
"headers": {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",

"Host": "httpbin.org",
"Referer": "https://blog.csdn.net/xiongzaiabc/article/details/84030849",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
},
"origin": "42.236.203.8, 42.236.203.8",
"url": "https://httpbin.org/get"
}

Python知識點:

float向下取整直接用內建的 int() 函數即可:
>>> a = 3.75
>>> int(a)
3


正則表達式:獲取 "post/"後面的所有數字:
a = re.findall(r‘post/(\d+)‘, detail_url)[0]


去除換行:str.replace("\n", "")
去除空格:str.strip()


MD5使用:
from hashlib import md5
m = md5()
m.update(b"aa")
print(m.hexdigest())


代碼 %2B在html中是+號的意思,通過 GET方式傳值的時候,+號會被瀏覽器處理為空。。需要轉換為%2b

升級PIP ,升級一下pip ,--upgrade 後面跟的是需要升級的庫名
python -m pip install --upgrade pip


python後端執行前端JS代碼可以使用:
pip install PyExecJS
import execjs
execjs.eval("js代碼")

Python內置函數eval()
將字符串str當成有效的表達式來求值並返回計算結果 如:
a = "*"
b = "5"
c = "6"

print(eval("{}{}{}".format(b, a, c)))

打印結果是30


在瀏覽器url中 "/", 等於"%2F" "+", "%2B"

python 數字的四舍五入
問題
你想對浮點數執行指定精度的舍入運算。

解決方案
對於簡單的舍入運算,使用內置的 round(value, ndigits) 函數即可。比如:


Python的list中insert() 將一個元素插入到列表中,但其參數有兩個(如insert(1,”g”)),第一個參數是索引點,即插入的位置,第二個參數是插入的元素。


.py文件,有兩種執行方法
一、直接右鍵運行,作為腳本運行
二、被import到其他程序中執行

如果加上 if __name__ == ‘__main__‘: 這句代碼的話,只有右鍵運行這句代碼下面的代碼才會運行,而被導入到其他程序中,這句代碼下面的話將不再執行


python為什麽只有一個元素的元組要加逗號?
假設你要給一個函數傳遞一個參數,而這個參數是一個tuple,比如:(12,),如果你寫成(12),你猜python是會把他當成數字12呢,還是一個tuple?
這樣的情況並不少見,比如數學運算,就會用到小括號,python會如何處理呢?加個“,”,就是明確的告訴python,這是一個tuple。
字符串也會出現類似的情況。
(‘abc‘)和(‘abc‘,)python會有不同的處理。
找幾個方法處理一下對應的對象類型,就明白了。


django 返回json格式數據
import json
from django.http import HttpResponse
def get_an_apple(request):

resp = {‘errorcode‘: 100, ‘detail‘: ‘Get success‘}

return HttpResponse(json.dumps(resp), content_type="application/json")

函數返回多個值,可以用如下方法按需獲取
def xxx():
a = 1
b = 2
c = 3
return {"a": a, "b": b, "c": c}

fff = xxx()
print(fff["a"])

請求頭 "Transfer-Encoding": "chunked", 出現亂碼,去掉這個請求頭試試,(可以看看awehome發布新帖時,就攜帶有這個頭)


Requests支持流式上傳,這允許你發送大的數據流或文件而無需先把它們讀入內存。要使用流式上傳,僅需為你的請求體提供一個類文件對象即可:(可以看看awehome發布新帖時,就有這種情況)
Requests+requests-toolbelt庫(直接發送數據流)

MySQL知識點:

自增長代碼代表:auto_increment

主建的代碼代表:primary key


通過python給mysql建表
import pymysql

db = pymysql.Connect(host=‘119.28.130.xxx‘,
port=xxx,
user=‘xxx‘,
password=‘xx.666‘,
database=‘xx‘, )
cursor = db.cursor()
sql = ‘‘‘create table Student( (create table xxx 有個table 有個table 有個table)
StdID int not null,
StdName varchar(100) not null (註意最後一行沒有逗號 沒有逗號 沒有逗號)
)‘‘‘

desc table 查看表屬性


mysql添加字段 alter table table1 add transactor varchar(10) not Null;
mysql修改字段 alter table 表名稱 change 字段名稱 字段名稱 字段類型 [是否允許非空];

cursor.execute(sql)
db.commit()
print(cursor)
print(db)


創建數據庫 create database xxx
刪除數據庫 drop database xxx
刪除表 drop table xxx
清空表內數據

ORM添加保存實時時間字段
date = models.DateTimeField(auto_now_add=True)

django通過ORM操作mysql
詳情看:https://www.cnblogs.com/chaojiyingxiong/p/9490582.html(找時間整理到自己博客)

Mysql插入中文時提示:ERROR 1366 (HY000): Incorrect string value:
做以下操作:
修改表的編碼方式:ALTER TABLE `test` DEFAULT CHARACTER SET utf8;(該命令用於將表test的編碼方式改為utf8; )
修改字段的編碼方式:ALTER TABLE `test` CHANGE `name` `name` VARCHAR(36) CHARACTER SET utf8 NOT NULL;(該命令用於將表test中name字段的編碼方式改為utf8)

前端知識點:

$("#log").empty() 刪除id為log標簽下面的所有子標簽
$("#log").append("<p>" + success_data + "</p>") id為log標簽下面增加一個p標簽
$("#log").val()獲取id為log輸入框中的內容
$("#log").val("哈哈哈")把id為log輸入框中的內容修改為"哈哈哈"


jquery修改標簽css樣式
$(".btn1").click(function(){
$("p").css("color","red");
});


路徑中的點“./”、“../”、“/”代表的含義
“./”:代表目前所在的目錄
“. ./”:代表上一層目錄
“/”:代表根目錄


//獲取id=div1下的子元素的個數
$(‘#div1‘).children().length;
//獲取id=div1下的span元素個數
$(‘#div1‘).children(‘span‘).length;


html適應手機端
<meta name="viewport" content="initial-scale=1, user-scalable=0, minimal-ui">


媒體查詢
@media screen and (max-width: 500px) {
#all_url {
width: 300px;
}
}


解決手機端頁面左右浮動 :
html,body{
overflow-x:hidden;
}

域名前的“www”改成“m”,一般就是訪問手機頁面的網站,例如:“www.baidu.com”改為“m.baidu.com”


alert(3.9395613131043667.toFixed(10)) 打印結果是 3.9395613131 相當於取小數點後面的十位數


CSS加粗字體:
font-weight: bold;


html母版繼承
{% extends ‘master.html‘ %} #繼承master.html,只能繼承一個模版
{% block title %}用戶管理{% endblock %} 繼承模板之後添加自己才有的塊兒

HTML JSON解析
JSON.parse(後臺傳過來的數據):把JSON字符串轉換成js數據,如存在不符合JSON要求的數據,會直接報錯;
JSON.stringigy(要往後臺傳數據 ):把js的數據轉換成JSON字符串,如存在不符合JSON要求的數據,會直接報錯

Git基本命令:

Git工作步驟:工作區→暫存區→提交到git倉庫


mkdir xxx 新建文件夾
touch xxx.txt 新建文件

git init 新建git庫
git status 查看當前文件夾中文件狀態
git add 內容有變動的文件添加到待暫存區
git commit -m ‘版本變更描述‘ 將暫存區的文件提交到git倉庫
git diff xxx.txt 查看內容有變動的文件是哪裏有變動了
git reflog 查看歷史提交版本
git reset hard--歷史版本碼 返回以前版本

cat xxx.txt 查看文件的內容


git checkout --xxx.txt 撤銷操作,有以下兩種情況: (註意:命令git checkout -- xxx.txt 中的 -- 很重要,如果沒有 -- 的話,那麽命令變成創建分支了。)
一、xxx.txt自動修改後,還沒有放到暫存區,使用 撤銷修改就回到和版本庫一模一樣的狀態。
二、另外一種是xxx.txt已經放入暫存區了,接著又作了修改,撤銷修改就回到添加暫存區後的狀態


rm xxx.txt 刪除文件
此時 git status 顯示 deleted: xxx.txt
此時有兩種選擇:
一、git commit -m ‘詳細描述‘ 直接提交,徹底刪除
二、checkout -- xxx.txt 恢復被刪除的這個文件


遠程倉庫(Github):
在連接之前,先註冊github賬號,由於本地Git倉庫和github倉庫之間的傳輸是通過SSH加密的,所以需要一點設置:

HTTP請求和響應參數

Request Headers

Accept:告訴服務器,客戶機支持的數據類型

Accept-Encoding:告訴服務器,客戶機支持的數據壓縮格式

Cache-Control:緩存控制,服務器通過控制瀏覽器要不要緩存數據

Connection:處理完這次請求,是斷開連接還是保持連接

Cookie:客戶機通過這個可以向服務器帶數據

Host:訪問的主機名

Upgrade-Insecure-Requests:參考http://www.cnblogs.com/hustskyking/p/upgrade-insecure-requests.html

User-Agent:告訴服務器,客戶機的軟件環境

  Response Headers響應頭

  Connection:處理完這次請求後,是斷開連接還是繼續保持連接

  Content-Encoding:服務器通過這個頭告訴瀏覽器數據的壓縮格式

  Content-Length:服務器通過這個頭告訴瀏覽器回送數據的長度

  Content-Type:服務器通過這個頭告訴瀏覽器回送數據的類型

  Date:當前時間值

  Server:服務器通過這個頭告訴瀏覽器服務器的類型

  Vary:Accept-Encoding ——明確告知緩存服務器按照 Accept-Encoding 字段的內容,分別緩存不同的版本;參考:https://imququ.com/post/vary-header-in-http.html

  X-Powered-By:服務器告知客戶機網站是用何種語言或框架編寫的。

大四實習期間公司遇到的一些知識點