===========================================================================================================================================
基礎: 1、列表
===========================================================================================================================================
1. 取出元素------------------------->>-: 變量=列表[索引]javascript
2. 添加元素------------------------->>-: 列表.insert(位置,要添加的元素)css
列表.append(要添加的元素)html
列表.exntend([元素,元素,元素,元素])java
3. 修改元素------------------------->>-: 列表[索引] = "將要被修改爲的元素"mysql
4. 刪除元素------------------------->>-: del 列表[索引]git
列表.remove(元素) #-只能刪一個元素web
列表.pop() #-只能刪除最後一個元素正則表達式
列表.pop(索引) #-只能刪一個元素sql
列表.clear() #-清空數據庫
5. 統計元素------------------------->>-: print(len(列表)) #-查列表內元素的數量
if 元素 in 列表: #-判斷列表中是否包含某元素
變量 = 列表.count(元素) #-查元素出現次數
變量 = 列表.index(元素) #-查元素索引
6. 元素排序------------------------->>-: 列表.sort() #-升序
列表.sort(reverse=True) #-降序
列表.reverse() #-反轉
7. set()去重------------------------>>-: set(a)
===========================================================================================================================================
基礎: 2、字典
===========================================================================================================================================
1. 字典取值------------------------->>-: 變量 = 字典[鍵] #-若是沒有key會報錯
變量 = 字典.get(鍵) #-若是沒有key不會報錯,返回None
變量 = 字典.get(鍵,"") #-若是沒有key不會報錯,返回引號中的內容
變量 = 字典.keys() #-能夠把字典中的全部key以視圖對象的方式遍歷出來,
視圖對象可隨意更改爲列表、元祖類型。
取出的內容沒有順序
for key in 字典.keys() #-遍歷全部鍵
for value in 字典.values() #-遍歷全部值
for item in 字典.items() #-遍歷全部鍵和值
for key,value in 字典.inems() #-遍歷全部鍵和值,遍歷一次自動換行
for key in 字典:
print(key, 字典[key]) #-打印效果:> key values
2. 增長鍵值對----------------------->>-: 字典[鍵] = 值 #-無則增,有則改
3. 刪除鍵值對----------------------->>-: del 字典[鍵] #-刪除指定鍵
字典.pop(鍵) #-刪除指定鍵
變量 = 字典.pop(鍵) #-刪除鍵,並返回被刪鍵
變量 = 字典.popitem() #-隨機刪除一個鍵值對
4. 改值----------------------------->>-: 字典[鍵] = 值
字典.update({鍵:值,鍵:值}) #-更新鍵值對
===========================================================================================================================================
基礎: 3、字符串
===========================================================================================================================================
1. 判斷開頭------------------------->>-: if 字符串變量.startswith("條件")
2. 判斷結尾------------------------->>-: if 字符串變量.endswith("條件")
3. 左-->右查找---------------------->>-: 新變量 = 字符串的變量.find("判斷條件") #-未找到返回-1, 找到返回索引
4. 右-->左查找---------------------->>-: 新變量 = 字符串的變量.rfind("判斷條件") #-未找到返回-1, 找到返回索引
5. 替換----------------------------->>-: 新變量 = 字符串的變量.repiace("被替換的",「替換成」)
新變量 = 字符串的變量.repiace("被替換的",「替換成」,替換數量)
6. 轉爲大寫------------------------->>-: 新變量 = 變量.upper()
7. 轉爲小寫------------------------->>-: 新變量 = 變量.lower()
8. 居中對齊------------------------->>-: 新變量 = 變量.center(字符長度,「內容外要顯示的東西」)
9. 左對齊--------------------------->>-: 新變量 = 變量.ljust(字符長度,「內容外要顯示的東西」)
10.右對齊--------------------------->>-: 新變量 = 變量.rjust(字符長度,「內容外要顯示的東西」)
11.去除頭尾------------------------->>-: 新變量 = 變量.strip(「去除內容」)
12.去除左右/替換-------------------->>-: 新變量 = 變量.repllace("去除內容","去除內容替換爲")
13.拆分----------------------------->>-: 新變量 = 變量.split("內容") #-拆分字符串並刪除"內容"
14.拼接----------------------------->>-: 新變量 = 變量 + 變量
新變量 = 變量.join(["內容","內容","內容"])
===========================================================================================================================================
一. udp
===========================================================================================================================================
udp----建立------------------------->>-: from socket import *
udp_socket = socket(AF_INET, SOCK_DGRAM)
dup----發送------------------------->>-: udp_socket.sendto(內容.encode(編碼), (ip, 端口))
dup----接收------------------------->>-: recv_data = udp_socket.recvfrom(最大接收字節數)
dup----綁定固定端口號--------------->>-: udp_socket.bind(變量) #《變量 = ("", 端口號)》
udp----接收顯示--------------------->>-: print(recv_data.decode(解碼))
udp----關閉套接字(socket)----------->>-: udp_socket.close()
===========================================================================================================================================
二. tcp客戶端
===========================================================================================================================================
tcp----客戶端建立------------------->>-: from socket import *
tcp_client_socket = socket(AF_INET, SOCK_STREAM)
tcp----鏈接服務器------------------->>-: tcp_client_socket.connect((服務器ip, 服務器port)) #《port:---端口號》
tcp----發送------------------------->>-: tcp_client_socket.send(內容.encode(編碼))
tcp----接收------------------------->>-: recv_data = tcp_client_socket.recv(最大接收字節數)
tcp----接收顯示--------------------->>-: print(recv_data.decode(解碼))
tcp----關閉套接字------------------->>-: tcp_client_socket.close()
===========================================================================================================================================
三. tcp服務器
===========================================================================================================================================
tcp----服務器建立------------------->>-: from socket import *
tcp_server_socket = socket(AF_INER, SOCK_STREAM)
tcp----設置重用端口號--------------->>-: server_socket.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) #《1表明設置 0表明取消》
tcp----綁定端口號------------------->>-: tcp_server_socket.bind(("", 端口號))
tcp----轉爲監聽模式----------------->>-: tcp_server_socket.listen(128)
tcp----爲客戶端安排溝通套接字------->>-: tcp_client_socket, tcp_client_addr = tcp_server_socket.accept()
===========================================================================================================================================
四. 獲取當前時間
===========================================================================================================================================
1.導入模塊-------------------------->>-: import datetime
2.調取當前時間---------------------->>-: now_time = datetime.datetime.now()
3.更改時間顯示格式------------------>>-: a = now_time.strftime("%Y-%m-%d %H:%M:%S")
4.顯示時間-------------------------->>-: print(a)
===========================================================================================================================================
五. 線程建立
===========================================================================================================================================
1.線程模塊導入:--------------------->>-: import threading
2.基本子線程建立方法:--------------->>-: t1 = threading.Thread(target=xxx, args=(參數,))
t1.start()
3.面向對象方式建立子線程方法:------->>-: class MyTherad(threading.Thread):
def run(self):
self.類方法
def...
def main():
for i in range(子線程數量)
t1 = MyThread()
t1.start()
4.查看線程數量方法:----------------->>-: 變量(線程數量)= len(threading.enumerate())
5.建立互斥鎖:----------------------->>-: mutex = threading.Lock()
6.鎖定------------------------------>>-: mutex.acquire()
7.釋放------------------------------>>-: mutex.release()
===========================================================================================================================================
六.進程建立
===========================================================================================================================================
1.進程模塊導入:--------------------->>-: from multiprocessing import Process
2.2.基本子進程建立方法:------------->>-: P1 = Process(target=xxx, args=(參數,))
3.面向對象方式建立子進程方法:------->>-: class MyProc(multiprocessing.Process):
def run(self):
self.類方法
def...
def main():
for i in range(子進程數量)
t1 = MyProc()
t1.start()
4.自動建立子進程方法:(多進程必用)
1.輸入信息-->賦值給變量
2.將信息變量打包成元祖,轉給類,而後將類當作一個變量,返回
類變量 = 類(信息變量,信息變量,信息變量)
3.建立子進程:
pro = multiprocessing.Process(target=類變量.類方法)
pro.start()
5.得到進程pid----------------------->>-: 想要得到的地方打印 print(os.getpid())
6.得到父項進程pid------------------->>-: 想要得到的地方打印 print(os.getppid())
===========================================================================================================================================
七. 進程間通訊 用Queue隊列
===========================================================================================================================================
1. 導入Queue模塊:------------------->>-: form multiprocessing import Queue
2.建立Queue對象:-------------------->>-: q = Queue(接收消息的數量)
3.發送消息:------------------------->>-: q.put(內容)
4.接收消息:------------------------->>-: q.get()
5.返回隊列消息數量------------------>>-: q.qsize()
6.查看消息隊列空-------------------->>-: q.empty()
7.查看消息隊列滿-------------------->>-: q.full()
===========================================================================================================================================
八. 進程池Pool(多進程必用)
===========================================================================================================================================
1.導入進程池模塊:------------------->>-: from multiprocessing import Pool
2.建立進程池:----------------------->>-: po = Pool(最大進程數)
3.往進程池中添加一個任務(一):------->>-: po.apply(func=函數)
#《執行完一個任務後,纔會開始執行下一個任務,能夠不加join》
4.往進程池中添加一個任務(二):------->>-: po.apply_async(func=函數)
#《多個任務同時去作,關閉進程池後必須加po.join》
5.關閉進程池------------------------>>-: po.close()
6.阻塞等待全部進程任務運行結束:----->>-: po.join()
===========================================================================================================================================
九.迭代器
===========================================================================================================================================
1. 迭代器生成方法(一):------------->>-: 變量 = (公式 for循環)
2. 迭代器生成方法(二):------------->>-: 函數內加 yield 後跟接收的變量
3. yield 多任務切換:--------------->>-: 1.建立第一個任務函數
#《函數最後加 yield 和 time.sleep(0.5)》
2.建立第二個任務函數
...
3.調用生成器函數,產生生成器對象-------w1 = 第一個任務函數()
w2 = 第二個任務函數()
4.循環調用生成器進行任務切換----------while True:
next(w1)
next(w2)
===========================================================================================================================================
十. 協程
===========================================================================================================================================
1.判斷對象是否可迭代---------------->>-: 1.導入模塊:-------from collections import Iterable
2.isinstance(a, Iterable) #《a:-----要查詢的數據》
2.greenlet多任務切換:--------------->>-: 1.導入greenlet模塊:----from greenlet import greenlet
2.建立greenlet對象-----gr1 = greenlet(任務1)
gr2 = greenlet(任務2)
...
3.任務中添加切換功能---任務1結尾添加 gr2.switch()
time.sleep(0.5)
任務2結尾添加 gr1.switch()
time.sleep(0.5)
4.啓動位置添加程序段:----------------gr1.switch()
3.gevent多任務切換(主要用):--------->>-: 1.導入模塊----------from gevent import monkey
monkey.patch_all()
#《多任務同時進行》 import gevent
import time
2.建立任務函數 函數內容末尾必須加time.sleep()
3.建立並啓動協程----g1 = gevent.spawn(任務函數,若是有要傳的參數直接寫在這裏)
g2 = gevent.spawn(任務函數,若是有要傳的參數直接寫在這裏)
g3 = gevent.spawn(任務函數,若是有要傳的參數直接寫在這裏)
time.sleep()
4.添加主進程保護----gevent.joinall([g1,g2,g3])
4.gevent多任務切換(主要用):--------->>-: 1.導入模塊------>>-:import gevent
import time
#《單任務執行後切換任務》
2.建立任務函數
3.建立並啓動協程----g1 = gevent.spawn(任務函數,若是有要傳的參數直接寫在這裏)
g2 = gevent.spawn(任務函數,若是有要傳的參數直接寫在這裏)
g3 = gevent.spawn(任務函數,若是有要傳的參數直接寫在這裏)
4.添加主進程保護----gevent.joinall([g1,g2,g3])
===========================================================================================================================================
十一. 網頁內容下載方法(非https)
===========================================================================================================================================
1.導入模塊:------------------------->>-: import urllib.request
2.建立任務函數(url):---------------->>-: response = urllib.request.urlopen(url) url:網頁賦值變量
data = response.read()
3.建立並啓動協程-------------------->>-: begin = time.time() #記錄當前時間 -----開始
.....
end = time.time() #記錄當前時間 -----結束
print("用時%f s" % (end - begin))
===========================================================================================================================================
十二. 正則表達式
===========================================================================================================================================
各類表達式-------------------------->>-: 匹配單個字符:
.---> 匹配任意一個字符,除了\n
[]--> 匹配[]中列舉的字符
[-]--> 匹配字符的範圍
[0-9]
[a-z]
[A-Z]
[^]--> 對其中字符禁止匹配--表示[]中的字符都不參與匹配
\d---> 表示匹配一個數字----等價於[0-9]
\D---> 表示匹配一個非數字--等價於[^0-9]
\s---> 表示匹配一個空白字符-----等價於[\n\t\r\f\v]
\S---> 表示匹配一個非空白字符---等價於[^\n\t\r\f\v]
\w---> 表示匹配一個單詞字符-----等價於[a-zA-Z0-9_]
\W---> 表示匹配一個非單詞字符---等價於[^a-zA-Z0-9_]
匹配多個字符:
{n} ----> 表明前面的字符能夠匹配n次
{n,m}---> 表明前面的字符最少匹配n次,最多匹配m次
{n,}----> 表明最少匹配n次便可,上不封頂
+ ------> 表明最少匹配1次
* ------> 表明最少匹配0次
? ------> 表明匹配0次或者1次
將匹配的內容單獨輸出方法(網頁篇):
匿名分組-------------------------->>-: data = re.match(r"()","") 在表達式中用括號括起來想要單獨輸出的內容便可.第一個括號用
group(1)調出. 第二個括號用group(2)調出. 以此類推
有名分組-------------------------->>-: data = re.match(r"<(?P<html>\w+)>(.*)</(html)>",a)
#建立順序----->data = re.match(r"","")--->re.match(r"<()><>",a)--->re.match(r"<(?P<名字>表達式)></(名字)>",a)
1.導入模塊-------------------------->>-: import re
2.只查開頭-------------------------->>-: re.match(r"a","b") #《a-正則表達式; b-搜索範圍》
3.查某內容(只查一部分,後面再也不查)--->>-: re.search(r"a","b") #《a-正則表達式; b-搜索範圍》
4.查全部內容(輸出所有要查找的內容)-->>-: re.findall(r"a","b") #《a-正則表達式; b-搜索範圍》
5.將匹配的數據進行替換-------------->>-: re.sub("a", "b", "c") #《a-正則表達式; b-要被替換的; c-將被替換成》
6.切割------------------------------>>-: re.split(r"a","") #《a-正則表達式,表示按什麼切分; b-要被切割的數據》
7.輸出內容-------------------------->>-: group(n) #《n-分組編號》
8.以元祖的方式輸出內容-------------->>-: groups()
正則表達式編譯功能:
1.將表達式封裝---------------------->>-: 變量 = re.compile(r"表達式")
2.調用------------------------------>>-: ↑變量.match/search/findall(搜索範圍).group()
===========================================================================================================================================
十三. 正則表達式------將接收到的data內容用正則表達式從中單獨提取出須要的部分
===========================================================================================================================================
1.接收內容-------------------------->>-: data = XXXX.recv(4096)
2.解碼------------------------------>>-: str_data = data.decode()
3.內容拆分到列表中------------------>>-: data_list = str_data.split("\r\n") #以網頁請求爲例. 括號內爲以\r\n爲基準切分
4.將列表中[0]號參數取出------------->>-: list_0 = data_list[0]
5.正則取出參數中的路徑-------------->>-: re_list_0 = re.match(r"/w/s(/S)", list_0)
6.取出的歷經賦值給變量-------------->>-: puth_info = re_list_0.group(1)
===========================================================================================================================================
十四. Mysql---數據庫
===========================================================================================================================================
數據庫:
1.查看數據的存放位置(ubuntu)-------->>-: sudo su #進入最高權限
cd /var/lib/musql #數據存放的路徑
1.1修改mysql數據庫密碼-------------->>-: mysqladmin -uroot -p舊密碼 password 新密碼
1.2數據庫的備份--------------------->>-: 先切換路徑到桌面,而後--->>: mysqldump -uroot -p 源數據庫 > 新文件.sql
1.3數據庫的恢復--------------------->>-: 先建立一個同名的數據庫,而後切回ubuntu,---->>mysql -uroot -p 數據庫名 < 備份文件路徑/文件名
2.啓動mysql服務--------------------->>-: sudo service mysql start
3.中止mysql服務--------------------->>-: sudo service mysql stop
4.重啓mysql服務--------------------->>-: sudo service mysql restart
5.ubuntu的mysql默認登陸信息--------->>-: 賬號: root
密碼: mysql
6.鏈接mysql數據庫------------------->>-: mysql -uroot -pmysql #-u:賬號; #-p:密碼
7.查看mysql中都有那些數據庫--------->>-: show databases;
8.查看當前使用的數據庫-------------->>-: select databases();
9.使用XX數據庫---------------------->>-: use xxx;
10.建立數據庫----------------------->>-: create database 數據庫名稱 charset=utf8;
11.查看數據庫的建立語句------------->>-: show create database 數據庫名稱;
12.刪除數據庫----------------------->>-: drop database 數據庫名稱;
13.退出mysql數據庫的三種方法-------->>-: exit、puit、ctrl + d
14.查看mysql的配置文件-------------->>-: cd /etc/mysql/mysql.conf.d
15.查看mysql的log日誌--------------->>-: cd /var/log/mysql/error.log
16.顯示時間------------------------->>-: select now();
17.查看數據庫版本------------------->>-: select version();
數據表:
1.查看當前數據庫中全部表------------>>-: show tables;
2.查看錶結構(desc)------------------>>-: desc 表名;
3.建立表(create)-------------------->>-: create table 表名(列參數);
4.修改表(添加字段)------------------>>-: alter table 表名 add 列名 類型 約束;
5.修改表(重命名修改字段)------------>>-: alter table 表名 change 原列名 新列名 類型 約束;
6.修改表(不重命名修改字段)---------->>-: alter table 表名 modify 列名 類型 約束;
7.修改表(刪除字段)------------------>>-: alter table 表名 drop 列名;
8.刪除表(drop)---------------------->>-: drop table 表名;
9.查看錶的建立語句------------------>>-: show create table 表名;
10.向表內插入數據------------------->>-: insert into 表名 values;
11.查看錶內全部數據----------------->>-: select * from 表名;
12.查看錶內全部數據(徹底寫法)------->>-: select 數據庫.表名.* from 表名;
13.修改表內數據(update)------------->>-: update 表名 set 列=值 where 判斷條件;
14.物理刪除(不可恢復)--------------->>-: delete from 表名 where id = ***;
15.邏輯刪除(可恢復)----------------->>-: 跳到13步,將is_delete修改成1便可;
16.查看未被刪除文件----------------->>-: select * from 表名 where is_delete = 0;
17.查看已被刪除文件----------------->>-: select * from 表名 where is_delete = 1;
18.指定查詢------------------------->>-: select 列名,列名,列名 from 表名;
19.去重(distinct)------------------->>-: select distinct 列名 from 表名;
20.條件查詢------------------------->>-: select * from 表名 where 判斷條件
21.關鍵字查詢(模糊查詢)(like)------->>-: select * from 表名 where 列名 like "%關鍵字%" #%表示任意字符無關緊要
22.正則表達式查詢(rlike)------------>>-: select * from 表名 where 列名 rlike "正則表達式"
23.範圍查詢(in)(和)----------------->>-: select * from 表名 where 列名 in (**,**) #只查知足括號內條件的
24.範圍查詢(between)(到)------------>>-: select * from 表名 where 列名 between 初始條件 and 結束條件
25.空判斷(is null)------------------>>-: select * from 表名 where 列名 is null;
26.排序查詢------------------------->>-: (升序) select * from 表名 order by 列名 asc;
(降序) select * from 表名 order by 列名 desc;
27.聚合函數(查詢表內數據總數)--------->>-: select count(*) from 表名;
(查詢某個列有多少)-------->>-: select count(列) from 表名;
28.查詢最大值(max)------------------>>-: select max(列) from 表;
29.查詢最小值(min)------------------>>-: select min(列) from 表;
30.求和(sum)------------------------>>-: select sum(列) from 表;
31.求平均值(avg)-------------------->>-: select avg(列) from 表;
32.四捨五入保留小數位數(round)------>>-: select round(列,保留小數位數) from 表;
33.分組查詢(group by)--------------->>-: select 列,查詢方法 from students group by gender;
例: select gender, count(*) from students group by gender;
34.組名+內容(顯示查詢結果)---------->>-: select 列, 內容列表名字(列) from students group by gender;
35.分組後再條件篩選(having)--------->>-: select 列, 內容列表名字(列) from students group by gender having 判斷表達式
36.增長記錄分組內容總和------------->>-: select 列, 內容列表名字(列) from students group by gender with rollup
37.設置分行查詢--------------------->>-: select * from 表 where 判斷條件 limit 起始行,終點行 公式: limit (n-1)*m,m
38.列表內鏈接查詢(inner join + on)-->>-: select 表1.顯示列,表2.顯示列 from 表1 inner join 表2 on 表1.關聯列 = 表2.關聯列ID
39.列表左關聯查詢(lift join + on)--->>-: select * from 表1 left join 表2 on 表1.關聯列 = 表2.id/
40.導入sql資源文件(source)---------->>-: source 路徑/文件名
41.自關聯查詢----------------------->>-: 例:
select p.atitle,c.atitle from areas as p inner join areas as c on c.pid = p.aid where p.atital = "廣東省"
顯示省名 顯示市名 表 名1 表 名2 查找表1
42.標量子查詢語句------------------->>-: 例: 查詢結果爲《一行一列》
select * from students where heigh = (select max(heigh) from students);
43.列級子查詢語句------------------->>-: 例: 查詢結果爲《一列多行》
select class_name from classes where classes.id in (select cla_id from students);
44.行級子查詢語句------------------->>-: 例: 查詢結果爲《一行多列》
select * from students where (age,hergh) = (select max(age),max(hergh) from students);
45. 每種類型中最貴的(備份)--------->>-:
select a.name as "型號", b.name as "種類", c.name as "品牌", a.price as "價格" from goods as a inner join JDcate_name as b on a.cate_id = b.id inner join JDbrand as c on a.brand_id = c.id inner join (select cate_id as aa, max(price) as bb from goods group by aa) as d on d.aa = b.id and d.bb = a.price;
46.建立外鍵約束(1)------------------>>-: 先建立子表--->> foreign key(外鍵id) references 子表(id)
47.建立外鍵約束(2)------------------>>-: 先建立主表--->> alter table 主表 add foreign key (外鍵id) references 子表(id)
48.查找外鍵約束的名字--------------->>-: show create table 主表;
49.刪除外鍵約束--------------------->>-: alter table 主表 drop foreign key 外鍵名稱;
50.開始sql運行時間監測-------------->>-: set profiling = 1;
51.查看全部用戶--------------------->>-: mysql> select host,user,authentication_string from user;
視圖封裝:
1. 建立視圖封裝--------------------->>-: create view v_須要封裝的表名(視圖名稱) as select * from 須要封裝的表名
2. 刪除視圖封裝--------------------->>-: drop view 視圖名稱
事物操做:
1. 開啓事物:------------------------>>-: begin;
2. 操做內容------------------------->>-: sql操做;
3. 提交事物------------------------->>-: commit;
4. 回滾事物------------------------->>-: rollback
索引操做:
1. 開啓sql時間監測------------------>>-: set profiling = 1;
2. 建立索引------------------------->>-: create index title_**(#索引名字) on 表(title(*) #對應字段(長度,要和建立表時同樣));
例: create index title_index on text_index(title(10))
3. 執行sql查詢語句------------------>>-: select * from 表 where title = "條件"
4. 查詢消耗時間--------------------->>-: show profiles;
5. 查詢表中設置的索引--------------->>-: show index from 表;
6. 刪除索引------------------------->>-: drop index 索引名稱 on 表名;
===========================================================================================================================================
十五. Python操做MySql
===========================================================================================================================================
1. 導入模塊------------------------->>-: from pymysql import *
def update():
1. 創建和數據庫的鏈接對象----------->>-: conn = connect(host = "localhost", #localhose默認本機IP,如鏈接他人,需輸入對方ip
user = "mysql賬號",
password = "mysql密碼",
database = "數據庫名字",
port = mysql端口,
charset = "utf8")
2. 獲取數據庫的操做對象------------->>-: cur = conn.cursor()
3. 編寫sql操做語句------------------>>-: sql = "sql操做語句"
4. 經過3來執行4--------------------->>-: ret = cur.execute(sql)
print("受影響的行數爲%s" % ret)
5. 若是是更新操做,那麼執行此步------>>-: if ret != 0:
conn.commit() #提交
else:
conn.rollback() #回滾
6. 關閉操做對象--------------------->>-: cur.close()
7. 關閉鏈接對象--------------------->>-: conn.close()
def select():
1. 創建和數據庫的鏈接對象----------->>-: conn = connect(host = "localhost", #localhose默認本機IP,如鏈接他人,需輸入對方ip
user = "mysql賬號",
password = "mysql密碼",
database = "數據庫名字",
port = mysql端口,
charset = "utf8")
2. 獲取數據庫的操做對象------------->>-: cur = conn.cursor()
3. 編寫sql操做語句------------------>>-: sql = "sql操做語句"
4. 經過3來執行4--------------------->>-: ret = cur.execute(sql)
print("受影響的行數爲%s" % ret)
ret = cur.fetchone()/fetchall() #fetchone() 若是有數據,返回元祖. 若是沒有,返回None
print(ret) #fetchall() 若是有數據,返回元祖嵌套,沒有,返回空元祖()
5. 關閉操做對象--------------------->>-: cur.close()
6. 關閉鏈接對象--------------------->>-: conn.close()
防止sql注入bug:
1.操做語句中加%s站位
2.執行語句中加[實參],實參與站位一一對應 ret = cur.execute(sql,[實參])
3.主程序中加實參
===========================================================================================================================================
十六. WSGI
===========================================================================================================================================
已封裝模塊:
from wsgiref.simple_server import make_server
def application(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/html')])
print('===', environ['PATH_INFO'])
body = r'<h1>Hello, %s!</h1>'%(environ['PATH_INFO'] or 'web')
return [body.encode('utf-8')]
# 建立一個服務器,IP地址爲空,端口是8000,處理函數是application:
httpd = make_server('127.0.0.1', 8080, application)
print('正在監聽HTTP的8080端口...')
httpd.serve_forever()
練習用Application:
def applitation(environ, start_response):
start_response("200 OK",[("Context-Type", "text/html"),
("Server", "PythonWebServer")])
return "Hello~"
===========================================================================================================================================
十七. 文件操做
===========================================================================================================================================
1. 打開文件------------------------->>-: with open("路徑", "打開方式") as file
print(file.read())
===========================================================================================================================================
十八. argv(主程序頭必寫)
===========================================================================================================================================
1. 導入模塊------------------------->>-: import sys
2. 主程序開頭輸入------------------->>-: if len(sys.argv) != 2 #設置終端輸入參數的數量判斷條件
print("判斷條件數量不正確")
return
data = sys.argv[1]
if data.isdigit():
port = int(data)
3. 以後的程序可應用port進行傳參
===========================================================================================================================================
十九. argv---->經過終端輸入的方式導入模塊
===========================================================================================================================================
1. 導入模塊------------------------->>-: import sys
2. 將內容賦值給變量----------------->>-: mod_name_app_name = sys.argv[位置索引]
3. 將內容切分到列表----------------->>-: data_list = mod_name_app_name.split(":")
4. 判斷內容數量是否符合------------->>-: if len(data_list) != 2
5. 將參數分別賦值給命名------------->>-: mod_name = data_list[0]
app_name = data_list[1]
6. 導入'字符串'模塊----------------->>-: Application(模塊名) = __import__(mod_name)
# Application(模塊名) = __import__(mod_name) 等價於 import Application
7. 調用模塊內的函數----------------->>-: app = getattr(Application, app_name)
# app = getattr(Application, app_name) 等價於 Appliction.app
8. 在__init__中建立self.app = app,以便傳參
===========================================================================================================================================
二十. HTML+CSS
===========================================================================================================================================
HTML:
=======
1. 段落標籤------------------------->>-: <p></p> #段落標籤是個換行的標籤,而且文字沒有任何附加的效果,僅僅只是個文本
2. 頁面佈局標籤(換行)--------------->>-: <div></div> #在頁面佈局的時候使用<div>標籤,能夠達到換行的效果,佈局分塊用,也叫塊級標籤
3. 頁面佈局標籤(不換行)------------->>-: <span></span> #使用<span>標籤,能夠達到不換行的效果,不能設置寬和高,也叫內聯/行內標籤
4. 存放特殊效果的文字和小圖片------->>-: <span></span> #<span>標籤不但能夠佈局,還能夠存放帶有特殊效果的文字和小圖片
5. 文本加粗------------------------->>-: <b><b> #它能夠給文本設定加粗效果,無特殊含義,不換行
6. 文本傾斜------------------------->>-: <i></i> #它能夠給文本設定傾斜效果,無特殊含義,不換行
7. 文本下劃線----------------------->>-: <u></u> #它能夠給文本添加下劃線效果,無特殊含義,不換行
8. 文本刪除線----------------------->>-: <s></s> #它能夠給文本添加刪除線效果,無特殊含義,不換行
9. strong--------------------------->>-: <strong></strong> #強調語義的加粗,不換行
10. em------------------------------>>-: <em></em> #強調語義的傾斜,不換行
11. ins----------------------------->>-: <ins></ins> #強調語義的下劃線,不換行
12. del----------------------------->>-: <del></del> #強調語義的刪除線,不換行
13. 頁面中插入圖片------------------>>-: <img src="圖片名" title="圖片備註" alt="備用顯示">
#title: 當鼠標放到圖片上時,鼠標旁邊會顯示title設定的文字,以便於給圖片備註
#title: 可用於seo搜索關鍵詞的存放
#alt: 當圖片沒法顯示時,會顯示alt的內容.
#alt: alt支持盲人讀屏軟件的讀取
14. 插入超連接---------------------->>-: <a href="http://連接地址"/"路徑" target>顯示給用戶看的連接按鈕(文字/圖片)</a>
15. 超連接佔位---------------------->>-: <a href="###"></a>
16. 顯示多個空格-------------------->>-:  ....
17. 在網頁中顯示程序中的標籤-------->>-: <...>
18. 插入換行------------------------>>-: <br>
19. 建立無序列表-------------------->>-: <ul>
<li>列表內容1</li>
<li>列表內容2</li>
...
</ul>
20. 建立有序列表-------------------->>-: <ol>
<li>列表內容1</li>
<li>列表內容2</li>
...
</ol>
21. 建立自定義列表(項目列表)-------->>-: <dl>
<dt>項目標題</dt>
<dd>項目內容</dd>
...
</dl>
CSS引用:
=========
CSS初始化模板:
---------------
body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, dl, dt, dd, ul, ol, li, pre, form, fieldset, legend, button, input, textarea, th, td { margin:0; padding:0; }
body, button, input, select, textarea { font:12px/1.5tahoma, arial, \5b8b\4f53; }
h1, h2, h3, h4, h5, h6{ font-size:100%; }
address, cite, dfn, em, var { font-style:normal; }
code, kbd, pre, samp { font-family:couriernew, courier, monospace; }
small{ font-size:12px; }
ul, ol { list-style:none; }
a { text-decoration:none; }
a:hover { text-decoration:underline; }
sup { vertical-align:text-top; }
sub{ vertical-align:text-bottom; }
legend { color:#000; }
fieldset, img { border:0; }
button, input, select, textarea { font-size:100%; }
table { border-collapse:collapse; border-spacing:0; }
內鏈式:
--------
1. 搭建CSS運行環境------------------>>-: 在html的head中,回車插入<style></style>
2. 設置標籤內容屬性(顏色)----------->>-: 在style中加入屬性鍵值對 <style>
標籤{
color:red(顏色的英文)
}
</style>
外鏈式:
--------
1. 新建一個css文件
2. 編輯css文件內容,文件內容和內鏈式的<style></style>內容同樣: 標籤{
color:red
}
3. 在html程序中head中,回車插入css引用標籤: <link rel="stylesheet" href="路徑">
經常使用文字樣式屬性:
------------------
font(同時設置2-8)------------------->>-: font:是否加粗 是否傾斜 字號/行高 字體 #字號/行高 字體 -->這三個必須設置
1. 設置文字的顏色------------------->>-: color: ;
2. 設置文字加粗--------------------->>-: font-weight:bold;
3. 設置文字不加粗------------------->>-: font-weight:normal;
4. 設置文字的傾斜------------------->>-: font-style:italic;
5. 設置取消文字的傾斜--------------->>-: font-style:normal;
6. 設置文字的大小------------------->>-: font-size: ;
7. 設置行間距----------------------->>-: line-height:**px;
8. 設置文字的字體------------------->>-: font-family:'微軟雅黑'(字體名字通常用英文);
9. 設置文字下劃線------------------->>-: text-decoration:underline;
10. 設置取消文字下劃線-------------->>-: text-decoration:none;
11.設置文字的刪除線----------------->>-: text-decoration:line-through;
12.超連接的僞類--------------------->>-: 設置點擊前的狀態: ------------>>-: a:link{color:red};
設置點擊時的狀態: ------------>>-: a:active{color:red};
設置點擊後的狀態: ------------>>-: a:visited{color:blue};
設置鼠標滑過的狀態: ---------->>-: a:hover{color:yellow};
實際開發寫法------------------>>-: a{color:red};
a:hover{color:blue};
13.設置表單標籤--------------------->>-: 表單一般用來製做登陸,註冊和頁面的部分搜索,form叫表單域,form包含的標籤叫表單控件
建立表單標籤--------------------->>-: <form action="服務器提交地址" method="get(不加密)/post(加密)"></form>
文本框---------------------->>-: <input type="text" placeholder="默認顯示內容">
valus="默認顯示內容"
文本域---------------------->>-: <textarea></textarea>
css中設置文本域--------->>-: 禁用拖拽框大小----->>-: resize:none;
密碼框---------------------->>-: <input type="password">
單選框---------------------->>-: <input type="radio" name="" checked>男 <input type="radio" name="">女
#name取相同值,便可實現單選
#checked在'男'選項這裏,說明這個選項是默認選項(可設置默認,不寫就行)
設置選框點擊字也生效-------->>-: <input type="radio" name="" checked id=""><label for="">男</label>
#id和for取相同值便可
複選框---------------------->>-: <input type="checkbox">讀書 <input type="checkbox" checked>聽音樂
#默認
上傳文件-------------------->>-: <input type="file">
下拉菜單-------------------->>-: <select>
<option>北京</option>
<option>上海</option>
<option selected>廣州</option> #加了selected,因此默認選擇廣州
</select>
提交功能按鈕---------------->>-: <input type="submit" value="按鈕上顯示的內容">
須要經過js綁定功能的按鈕---->>-: <input type="button" value="按鈕上顯示的內容">
重置功能按鈕---------------->>-: <input type="reset">
刷新頁面按鈕---------------->>-: <a href="javascript:location.reload();" class="button2">重置</a>
經常使用佈局樣式屬性:
------------------
1. 設置佈局寬度--------------------->>-: width:**px;
2. 設置佈局高度--------------------->>-: height:**px;
3. 設置佈局背景色------------------->>-: background:***(顏色英文單詞);
設置佈局背景圖(平鋪)--------->>-: background:url(相對路徑/圖片名);
設置佈局背景圖(不平鋪)------->>-: background:url(相對路徑/圖片名) no-repeat **px **px; #後面的px可設置圖片位置座標
#定位在中間:px換成center
設置佈局背景圖(橫向平鋪)----->>-: background:url(相對路徑/圖片名) repeat-x;
設置佈局背景圖(縱向平鋪)----->>-: background:url(相對路徑/圖片名) repeat-y;
設置佈局背景圖位置固定------->>-: background:url(相對路徑/圖片名) no-repeat fixed; #加個fixed就行.或者不寫fixed,下加
background-attachment: fixed;
設置佈局圓角----------------->>-: border-radius:**px/**%(最大50%);
單獨設置背景圖平鋪方式------->>-: background-repeat: ;
單獨設置背景圖定位----------->>-: background-position: ;
設置佈局背景圖透明----------->>-: background:rgba(0,0,0,0.5(透明度)); 6 #0,0,0以黑色爲底色,0.5是透明度,範圍0-1之間小數
4. 設置佈局邊框(全體)--------------->>-: border:粗細(單位px) 顏色 樣式; #樣式包括: solid(實線)、dashed(虛線)、dotted(點線)
設置佈局頂邊邊框------------->>-: border-top:粗細(單位px) 顏色 樣式;
設置佈局左邊邊框------------->>-: border-left:粗細(單位px) 顏色 樣式;
設置佈局右邊邊框------------->>-: border-right:粗細(單位px) 顏色 樣式;
設置佈局底邊邊框------------->>-: border-bottom:粗細(單位px) 顏色 樣式;
10. 設置首行縮進--------------------->>-: text-indent: *em; #*em = *個字的寬度
11. 設置內間距----------------------->>-: padding:**px;
頂部距離--------------------->>-: padding-top:**px;
左側距離--------------------->>-: padding-left:**px;
右側距離--------------------->>-: padding-right:**px;
底部距離--------------------->>-: padding-bottom:**px;
四面八方距離----------------->>-: padding:**px **px **px **px; #三個值: 上 左右 下 兩個值: 上下 左右;
上 右 下 左
設置內容位置變化不影響總體尺寸(設置內間距時不影響總體尺寸)--->>-: box-sizing:border-box;
12. 設置元素和外界的距離------------->>-: margin:**px;
頂部距離--------------------->>-: margin-top:**px;
左側距離--------------------->>-: margin-left:**px;
右側距離--------------------->>-: margin-right:**px;
底部距離--------------------->>-: margin-bottom:**px;
四面八方距離----------------->>-: margin:**px **px **px **px; #三個值: 上 左右 下 兩個值: 上下 左右;
上 右 下 左
設置版心居中----------------->>-: margin:* auto;
設置內容超出父級隱藏(設置外間距時不影響父級位置和尺寸)------------->>-: overflow:hidden #放到父級中
13. 路徑寫法------------------------->>-: 1).當前文件所在位置包含的文件夾中--->>-: ./文件夾/文件
2).上一級位置所在文件夾中----------->>-: ../文件夾/文件
3).多級位置所在文件夾中------------->>-: ../../../文件夾/文件
14. 設置內容水平居中----------------->>-: text-align: center;
設置內容水平左對齊--------------->>-: text-align: left;
設置內容水平右對齊--------------->>-: text-align: right;
15. 設置內容垂直居中----------------->>-: line-height: 自身行高;
16. 實現元素類型之間的轉換----------->>-: 塊級轉內聯:------------------------------->>-: display: inline;
內聯塊(塊級轉內聯而且寬和高設置生效):----->>-: display: inline-block;
內聯轉塊級:------------------------------->>-: display: block;
隱藏(配合js)------------------------------>>-: display: none;
佔位隱藏(配合js)-------------------------->>-: visibility: hidden;
標準流/文檔流: 標籤默認的元素類型.
17. 浮動----------------------------->>-: 讓塊級標籤完美的沒有間距的在一行共存,只要涉及塊級一行共存,都用浮動.
無浮動--------------------->>-: float: none;
基準在左------------------->>-: float: left; #須要共存的元素都要加上這個
基準在右------------------->>-: float: right; #須要共存的元素都要加上這個
18. 清除浮動(清除浮動的影響)--------->>-: 1. 顯示在最底層的標籤添加 overflow:hidden;
2. 額外標籤法------------->>-: 在全部浮動標籤的下面添加<div class="clearFix"><div>
在css中設置.clearFix{clear:both;}
3. 僞類(僞元素)辦法------->>-: css中設置: ↓↓↓
.clearfix::after{
content:"" #語法規定,必須有這個
display:block/table; #轉元素類型爲block(塊級類型)
clear:both;
height:0; #設置一個默認高度爲0
visibility:hidden; #設置讓它佔位隱藏
zoom:1; #解決IE6的兼容性
}
在子級的最後,也就是包含子級的元素div中添加clearfix:↓↓↓
<div class="con clearfix">
19. 定位: 能夠控制讓標籤去頁面的任何一個位置,包括兩個標籤壓在一塊兒;
相對定位:---------------------------->>-: position: relative; #須要配合位置偏移屬性 top, bottom, left, right;
位置偏移屬性: **px; #偏移方向的基準點是本身
絕對定位:---------------------------->>-: position: absolute; #可設置寬和高屬性,默認寬高是本身;
位置偏移屬性: **px; #偏移方向的基準點是瀏覽器左上角
改變偏移方向基準點--------------->>-: 把被當作基準的標籤改爲相對定位便可
#定位要領: 子絕父相
固定定位----------------------------->>-: position: fixed; #可設置寬和高屬性,默認寬高是本身;
位置偏移屬性: **px; #經過位置偏移屬性設置固定顯示位置的座標;基準點是瀏覽器左上角
位置偏移屬性: **px;
改變盒子的顯示優先級----------------->>-: z-index:-10; #顯示在下面
鼠標顯示狀態------------------------->>-: cursor: pointer; 顯示鼠標手,
cursor: text; 顯示鼠標文本;
cursor: move; 顯示鼠標十字;
點擊按鈕時不顯示按鈕邊框------------->>-: outline:none;
類選擇器: **寫前臺基本都用這個
----------
1. 在css引用中建立類選擇器---------->>-: .類選擇器名字{color:red(顏色的英文)}
2. 設置對應要被修改的標籤----------->>-: 例、<div class="類選擇器名字><div>
ID選擇器: **一個ID名在一個頁面只能使用一次,通常預留給js配合程序去寫頁面的效果或者讀取數據.
----------
1. 在css引用中建立ID選擇器---------->>-: #ID選擇器名字{color:red}
2. 設置對應要被修改的標籤----------->>-: <div id="ID選擇器名字"><div>
後代選擇器(層級選擇器):
------------------------
標籤 標籤{color: red}
組選擇器(並集選擇器):
----------------------
標籤,標籤,標籤,標籤...{color:red}
指定標籤選擇器:
----------------
標籤.類{color:red}
僞元素選擇器:
--------------
元素的開頭添加內容------------------>>-: 元素::before{content:"內容"}
元素的結尾添加內容------------------>>-: 元素::after{content:"內容"}
===========================================================================================================================================
二十一. JavaScript
===========================================================================================================================================
1.建立JavaScript運行環境------------>>-: <script> #內聯式用
window.onload = function(){JavaScript代碼}
</script>;
2.引用js文件------------------------>>-: <script src="相對文件路徑"></script>; #外鏈式用
3.行內式調用js---------------------->>-: <標籤 事件=動做></標籤> #必須用戶有操做事件時,纔會執行,因此此功能用的不多
事件:
onclick ------------->>-: 鼠標點擊某個對象;
onmouseover --------->>-: 鼠標被移動到某元素上;
onmouseout ---------->>-: 鼠標從某元素移開;
ondblclick ---------->>-: 鼠標雙擊某個對象;
onabort ------------->>-: 圖像加載被中斷;
onblur -------------->>-: 元素失去焦點;
onchange ------------>>-: 用戶改變域的內容;
onerror ------------->>-: 當加載文檔或圖像時發生某個錯誤;
onfocus ------------->>-: 元素得到焦點;
onkeydown ----------->>-: 某個鍵盤的鍵被按下;
onkeypress ---------->>-: 某個鍵盤的鍵被按下或按住;
onkeyup ------------->>-: 某個鍵盤的鍵被鬆開;
onload -------------->>-: 某個頁面或圖像被完成加載;
onmousedown --------->>-: 某個鼠標按鍵被按下;
onmousemove --------->>-: 鼠標被移動;
onmouseup ----------->>-: 某個鼠標按鍵被鬆開;
onreset ------------->>-: 重置按鈕被點擊;
onresize ------------>>-: 窗口或框架被調整尺寸;
onselect ------------>>-: 文本被選定;
onsubmit ------------>>-: 提交按鈕被點擊;
onunload ------------>>-: 用戶退出頁面;
4.js入口函數的做用:----------------->>-: 保證先有html和css,再運行js
5.js入口函數寫法-------------------->>-: window.onload = function(){JavaScript代碼} #js文件或運行環境中首先加這個
6.從整個網頁文檔中經過ID名查找元素-->>-: document.getElementById("id名");
7.Dom控制id名的css寬度-------------->>-: document.getElementById("id名").style.wigth = "500px";
#js添加的css都是行內式,因此優先級比較高
#帶橫線的鍵須要把橫線去掉,變成駝峯式命名.例如 border-top 變成 borderTop
8.建立變量-------------------------->>-: var 變量名 = 內容;
#例、 var oMyp = document.getElementById("myp")
#變量名一般以變量類型的首字母+id名的駝峯方式來命名
9.Dom控制html的內容----------------->>-: document.getElementById("id名").innerHTML = "內容"
10.Dom控制html的屬性---------------->>-: document.getElementById("id名").屬性 = "內容"
#屬性是什麼就寫什麼,和html中同樣.除了class,class應該寫成className
#例、 document.getElementById("id名").href = "http://www.baidu.com"
11.查看數據類型--------------------->>-: typeof(要被查看的);
12.自定義函數----------------------->>-: function fn函數名(傳參填這裏){函數內容填這裏}
13.調用自定義函數------------------->>-: fn函數名();
14.添加條件判斷--------------------->>-: if (條件){條件成立執行的程序}
else if (條件){條件成立執行的程序}
else{以上條件都不知足,執行這個}
15.事件操做------------------------->>-: 事件源.事件類型 = function(){執行代碼}
16.建立網頁提示輸出彈窗-------------->>-: alert("內容");
17.js中的與、或、非------------------>>-: ||(與), &&(或), !(非)
18.數組------------------------------>>-: 用來存儲多個數據的容器
19.建立數組的兩種方式---------------->>-: var array_1 = new Array(存儲的數據,存儲的數據,存儲的數據);
var array_2 = [存儲的數據,存儲的數據,存儲的數據] #[工做中經常使用]
20.數組的經常使用操做方法:
查看數組內全部數據--------------->>-: alert(數組名);
經過索引查數據------------------->>-: var 變量 = 數組名[索引];
統計數組內數據數量--------------->>-: var 變量 = 數組名.length;
數組分割成字符串----------------->>-: var 變量 = 數組名.join("分割符號");
在數組結尾追加數據--------------->>-: 數組名.push("內容");
刪除數組中最後一個數據----------->>-: 數組名.pop();
刪除並替換某些數據--------------->>-: 數組名.splice(位置,刪除數量,添加誰);
刪除某索引後的全部數據----------->>-: 數組名.splice(位置索引);
數組反轉------------------------->>-: 數組名.reverse();
查數據第一次出現時的索引--------->>-: 數組名.indexOf(數據);
21.js的while循環寫法----------------->>-: while(循環條件){循環內容};
22.js的for循環寫法------------------->>-: for(初始值;條件;增量){循環內容};
23.js中字符串的經常使用操做方法:
轉換成去掉小數的數值------------->>-: parseInt(字符串);
轉換成保留小數的數值------------->>-: parseFloat(字符串);
以"-"分割成數組------------------>>-: 字符串.split("-");
切片----------------------------->>-: 字符串.substring(開始索引,結束索引);
從某索引開始切片----------------->>-: 字符串.substring(開始索引);
js的字符串反轉------------------->>-: 字符串.split("").reverse().join("") #把字符串轉爲數組,而後反轉,而後再轉成字符串.
24.定時器:
1. 建立空定時器變量---->>-: var oTimer = null;
單次定時------------>>-: oTimer = setTimeout(執行的(匿名函數/自定義函數名),定時器的延遲時間(毫秒,1000毫秒 = 1秒))
屢次循環定時-------->>-: oTimer = setInterval(執行的(匿名函數/自定義函數名),定時器的延遲時間(毫秒,1000毫秒 = 1秒))
2. 中止屢次循環定時---->>-: clearInterval("oTimer");
oTimer = null;
===========================================================================================================================================
二十一. jQUery
===========================================================================================================================================
1.導入JQ文件------------------------->>-: <script src = "jq文件路徑"></script>;
2.建立本身的script------------------->>-: <script></script>;
3.jQ入口函數(完整寫法)--------------->>-: $(document).ready(function(){});
4.jQ入口函數(化簡寫法)--------------->>-: $(function(){});
5.選擇一個要控制的標籤--------------->>-: $("標籤/#id名");
#設置選中標籤點擊按鈕操做-------->>-: $("標籤/#id名").click(function(){操做});
6.jQ的相關操做:
隱藏選定------------------------->>-: $("標籤/#id名").hide(完成時間);
顯示選定------------------------->>-: $("標籤/#id名").show(完成時間);
隱藏和顯示綜合體----------------->>-: $("標籤/#id名").toggle(完成時間);
鼠標滑過和鼠標離開綜合體--------->>-: $("標籤/#id名").hover(function(){通過時的代碼}, function(){離開時的代碼});
使用jQ控制css屬性---------------->>-: 單個控制------>>-: $("標籤/#id名").css("鍵","值");
多個控制------>>-: $("標籤/#id名").css({"鍵":"值","鍵":"值"});
使用jQ訪問css屬性的值------------>>-: $("標籤/#id名").css("鍵");
使用jQ控制html內容--------------->>-: $("標籤/#id名").html("要改爲的內容");
7.jQ的經常使用選擇器:
選擇第一個li標籤----------------->>-: $("li:first").xxx("xxx"); /$("li").first().xxx("xxx");
選擇最後一個li標籤--------------->>-: $("li:last").xxx("xxx"); /$("li").last().xxx(xxx);
選擇任意索引位置的li標籤--------->>-: $("li").eq(標籤所在位置索引).xxx("xxx");
選擇指定標籤前面的一個標籤------->>-: $("標籤").prev().xxx("xxx");
選擇指定標籤前面的全部標籤------->>-: $("標籤").prevAll().xxx("xxx");
選擇指定標籤後面的一個標籤------->>-: $("標籤").next().xxx("xxx");
選擇指定標籤後面的全部標籤------->>-: $("標籤").nextAll().xxx("xxx");
根據class選擇標籤---------------->>-: $(".名").nextAll().xxx("xxx");
根據id選擇標籤------------------->>-: $("#名").nextAll().xxx("xxx");
選擇排除.box外的全部li標籤------->>-: $("li").not(".box").xxx("xxx");
選擇包含某標籤的父級標籤--------->>-: $("父級標籤").has("標籤").xxx("xxx");
選擇父級標籤中的某標籤----------->>-: $("父級標籤").find("標籤").xxx("xxx");
選中屬性=值得li標籤-------------->>-: $("li[class=box]").xxx("xxx");
選擇某標籤的父級標籤------------->>-: $("標籤").parent().xxx("xxx");
選擇本身的父級標籤--------------->>-: $(this).parent().xxx("xxx");
選擇本身的子級標籤--------------->>-: $(this).children("要選擇的子級").xxx("xxx");
選擇本身的同級(兄弟)標籤--------->>-: $(this).siblings().xxx("xxx"); #排他思想就是用siblings作的.
鏈式編程------------------------->>-: 同標籤的連續不一樣操做,可用鏈式編程:例:
$(this).css("xxx").siblings("xxx");
給某個標籤添加類名(class)-------->>-: $("標籤").addClass("設置好屬性的class名");
給某個標籤刪除類名(class)-------->>-: $("標籤").removeClass("當前標籤的class名(可不填)");
添加類名和刪除類名的綜合體------->>-: $("標籤").toggleClass("class名");
查本身的索引值------------------->>-: $("標籤").index();
8.自定義動畫函數:
1.建立自定義動畫函數------------->>-: #$("標籤").animate(動畫過程,完成時間,運動曲線,回調函數);
$("標籤").animate({"width": "200px"},600,"linear",function(){動畫完成後執行的內容});
動畫過程製做-->>-: {k:v, k:v} #例如 {"width": "200px","height": "100px"};
運動曲線製做-->>-: 兩個參數: 1.swing; 2.linear #一般用linear
回調函數------>>-: 指動畫完成後要執行的函數.