0803-Sql擴展和回歸web框架
Sql擴展:
賬戶管理,就是在生產(chǎn)環(huán)境中操作數(shù)據(jù)庫的時候 絕對 不要用root賬戶連接,而且創(chuàng)建特定的行乎,給一定的操作權(quán)限
Sql賬戶有以下幾種:服務(wù)實例級,數(shù)據(jù)庫級,數(shù)據(jù)表級,字段級,存儲程序級
就是怕你開發(fā)的時候手一抖給數(shù)據(jù)庫刪了或者發(fā)電跑路刪庫 而且可以指定讓你用select,不讓用update,delete之類的
grant 權(quán)限列表 on 數(shù)據(jù)庫 to '用戶名'@'訪問主機' identified by '密碼'
創(chuàng)建一個 laowang 的賬戶 密碼為laowang123456 只能通過本地訪問 只能對jing_dong數(shù)據(jù)庫的所以表進行 讀取 操作
grant select on jing_dong.* to 'laowang'@'localhost' identified by 'laowang123456';
這個東西一般用不到,只有root管理員能添加,訪問主機可以填I(lǐng)P或%或者localhost,%是任意主機,localhost是本地
select寫all privileges表示所有權(quán)限,修改權(quán)限和改密碼如下:
grant 權(quán)限列表 on 數(shù)據(jù)庫 to '用戶名'@'訪問主機' with grant option;
update user set authentication_string=password('新密碼') where user='用戶名';
password是來加密密碼的,你可以不加,但是那就不會加密
怎么遠(yuǎn)程連接另一臺電腦的sql?
mysql -uxxx -pxxx -hxxx.xx.x.xxx -p3306
-h是IP,-p是端口
要是還是連不上怎么辦,用sudo打開vim /etc/mysql/mysql.conf.d/mysqld.cnf,把bind端口那句刪掉
刪除用戶用drop user '用戶名'@'主機',刪不掉就用delete from user where user='用戶名';
以上的所有修改完后要用flush privileges刷新權(quán)限
Sql主從
就是多個Sql服務(wù)器,能用來隨時備份,也能拿來分擔(dān),可以把所有修改的之類的放到主里面,查之類的放到從服務(wù)器里,讀寫分離負(fù)載均衡
主(master)服務(wù)器,從(slave)服務(wù)器,DeepDrakMaster服務(wù)器(
一個主服務(wù)器可能有許多二級從服務(wù)器,而這些二級服務(wù)器可能下面還有三級服務(wù)器之類的,他們直接主要通過二進制日志來保持同步
然后其下級服務(wù)器進行IO讀寫操作,并且決定執(zhí)行哪一類時間
而且要設(shè)置服務(wù)器的唯一ID,要標(biāo)識服務(wù)器,可以在網(wǎng)上搜怎么完成主從配置
備份數(shù)據(jù)mysqldump -uroot -p123456 數(shù)據(jù)庫名 > python.sql;
恢復(fù)數(shù)據(jù)mysql -uroot -p123456 新數(shù)據(jù)庫名 < python.sql;
# 大于小于號表示重定向輸出
具體的流程就不再贅述了,這個東西主要學(xué)思想,暫時有段時間不會用到,我這windows環(huán)境也不一樣,Sql都不一定裝了,更別提搞主從了
Sql這章就到這吧,準(zhǔn)備準(zhǔn)備web框架
好,一個小時過去了BUG解決了
當(dāng)初留的程序不知道為啥跑不了了,整半天又回去換上個版本重新寫吧,重新看視頻重新寫
成了,重新建了個文件夾,叫Web服務(wù)器-new,原來那文件結(jié)構(gòu)忒爛了,這個新的就留模板文件以及以后的web框架版本
原理那個就留著廢棄了,萬一以后還要回去找文件,這個新文件夾一定要一個版本一個文件夾,不要一起塞一個文件夾
ulr 統(tǒng)一資源定義符,唯一標(biāo)記去哪個網(wǎng)址去服務(wù)器的哪個路徑下的什么東西
比如www.baidu.com/a/b/c/d/readme.html
好像露了段內(nèi)容沒錄制,框架里多了個re替換的代碼,不過手動補上了,問題不大
用裝飾器來自動定義URL_FUNC_DICT
這個實際上是利用了裝飾器能對函數(shù)進行操作并且后面調(diào)用函數(shù)不用變的特性來進行更加方便的操作,不然我手動寫也是一行,更簡單
但是確實非常天才,在@裝飾器的時候直接加()讓他執(zhí)行,然后傳這個函數(shù)在網(wǎng)頁里的地址,裝飾器外面再套一層,這樣抵消了@的時候調(diào)用的那層
就像把原來的裝飾器當(dāng)成另外一個獨立的函數(shù)一樣,但是一層函數(shù)接收了URL,二層接收函數(shù)引用,那么剛好能直接加到字典里了
這個是對裝飾器的運用,非常天才的做法,我們可以叫這個為映射
來這個URL請求,映射到程序中是哪個,配對,index函數(shù)映射到URL中是/index.py,同樣的,/index.py映射到程序中是index函數(shù)
以及仔細(xì)想想可以發(fā)現(xiàn),call_func里面其實以及不重要了,因為我們是框架,調(diào)這個東西是通過字典里面的value值(函數(shù)引用)去調(diào)的,而不是直接index()
其實現(xiàn)在我們實現(xiàn)的就可以叫路由功能,你來一個請求我對應(yīng)這個做一個回復(fù)
靜態(tài),動態(tài),偽靜態(tài)的區(qū)別
域名/news/2012-5-18/110.html這種是普通的URL,我們叫他真靜態(tài)URL
域名/NewsMore.asp?id=5 這種帶個?的亂七八糟的我們叫他動態(tài)URL,這個是個邏輯地址,不是實際html地址
問號后面的實際上就可以理解為參數(shù),前面的是調(diào)用函數(shù)
網(wǎng)站常用的語言asp和php,asp好像是windows的,至于php
php是世界上最好的語言(這是一個在官方文檔中出現(xiàn)過的梗,但是php本身確實在web開發(fā)中很常用,但是我還是喜歡python
京東給URL的語言后綴抹了,防止你找他后臺用的語言的漏洞
百度有可能是比如說你點一下收商家多少多少錢,所以你與其去超市捏方便面不如一直點網(wǎng)站(
而如果沒付費,他的排名就是根據(jù)你的優(yōu)化(SEO)啊之類的東西來,所以如果你做了個網(wǎng)站,不用想,前十頁絕對沒你(
域名/course/74.html,這個就是看起來是靜態(tài),但是你網(wǎng)站內(nèi)部把course當(dāng)函數(shù),功能還是動態(tài)的,來騙搜索引擎
沒錯,下面就來實現(xiàn)web服務(wù)器支持偽靜態(tài)(
視頻里是直接把所有的html當(dāng)成動態(tài)放進去,但是我就覺得不太合理,要是他真的是靜態(tài)安裝原本沒改服務(wù)器傳過去那不就掛了嗎
我覺得可以在框架里看,看這個東西在不在url_func_dict里,要是不在就讓服務(wù)器看看能不能打開,打不開就404
然后就是把sql查出來的數(shù)據(jù)替換到content里
我查出來的數(shù)據(jù)是一個元組嵌套,大元組是所有,小元組是每行
那么每行在html里有個模板,把模板里的數(shù)據(jù)挨個替換成小元組的數(shù)據(jù),這樣就做成一行了
做成多行的話,就把每行替換后的這個模板拼接起來就好了,那么我們可以做個循環(huán),每次循環(huán)替換掉之后把放在content上的信息拼接一行的html語言
而這個模板我粘到程序里,每個循環(huán)定義一個新的模板,數(shù)據(jù)改%s,后面加數(shù)據(jù)不就行了?
后面等學(xué)了前端html,可以試試復(fù)原sxp的網(wǎng)站,從網(wǎng)上把文檔蕩下來,然后自己寫html,寫完之后自己做服務(wù)器自己跟自己對接
但是肯定不會很華麗,就是一個簡單的查詢的網(wǎng)站,而且UI不會太好看,大概想一下就能想象到那是個多大的工程
然后就是后面的課程,因為之前U盤資料遺失的原因那些html文件沒了,我在考慮要不要直接跳到HTML語言的那章節(jié),等學(xué)完HTML可能再回來看
看情況了這個,不過今天就到這吧