web框架:將前端、資料庫整合到一起的基於網際網路傳輸的python**
web框架也可以簡單的理解為是軟體開發架構裡面的'服務端'
缺陷:1.服務端起始**過於重複
2.針對http請求資料沒有完善的處理方式
3.併發量問題
利用模組搭建服務端
利用模組處理好的http字典資料編寫業務
查詢使用者url字尾物件的鍵值對資料
from wsgiref import ******_server
def run(request, response):
response('200 ok', ) # 固定編寫 無需掌握
current_path = request.get("path_info")
if current_path == '/login':
return [b'hello login html']
elif current_path == '/register':
return [b'hello register html']
return [b'404 error']
if __name__ == '__main__':
server = ******_server.make_server('127.0.0.1', 8080, run)
'''一致監聽本機8080埠 一旦有請求訪問 自動觸發run方法的執行'''
server.serve_forever()
問題:1.如果**很多,就是新增elif
2.每個分支下的功能根據業務邏輯的不同可能會比較複雜
解決:將匹配和功能封裝成,元組和函式
所有的**全部放在乙個py檔案過於冗餘,不便於後期管理維護
根據功能的不同拆分成不同的py檔案
urls.py 對應關係的儲存
views.py 業務邏輯的編寫
想新增功能,只需要在urls.py中新增對應關係,view.py中編寫函式
業務函式的**中,可能會頻繁的使用到不同的html頁面,為了避免檔案型別的混亂,單獨開設乙個資料夾儲存所有的html檔案。
templates資料夾 儲存專案所需的html檔案
專案中的html檔案,也有可能需要用到css、js、第三方框架檔案。
html所學的css、js、第三方框架**都是寫完之後很少做改動的檔案 所以可以統一存放在某個資料夾下
static資料夾 儲存專案所需的'靜態檔案'
基於上述優化之後,整個專案結構清晰,管理維護都很方便。
頁面上展示當前時間
def get_time(request):
# 1.獲取當前時間
import time
c_time = time.strftime('%y-%m-%d %x')
# 2.讀取html檔案
with open(r'templates/get_time.html','r',encoding='utf8') as f:
data = f.read()
new_data = data.replace('asdaksdjal',c_time)
return new_data
在編寫前後端不分離專案的時候,可以使用該模組提供的模板語法簡單快速的在html頁面是使用類似於後端的**語法運算元據。
模板
temp_obj.render()}}
}}元素:}
也可以獲取資料庫中的資料展示到前端頁面
flask的第三方模組加到一起甚至比django還多,並且也越來越像django。flask由於過多的依賴於第三方模組,有時候也會受制於第三方模組。
框架的核心邏輯幾乎是一致的,我們在學習的時候只需要先學會一種
之後就可以觸類旁通,但是需要強調的是:千萬不用同時學習,因為非常容易混淆。
django本身類似於是乙個空殼子,真正的功能是由裡面的各個應用決定。
命令操作django
pycharm操作django
使用django寫乙個**,我們應該先建立乙個空的django專案然後根據功能的不同建立不同的應用
專案檔名
同名資料夾
settings.py 專案配置檔案
urls.py 路由層
manage.py
django入口檔案 很多命令都需要該檔案支援
db.sqlite3
django啟動之後才會生成的檔案 其實就是django自帶的小型資料庫
templates資料夾
模板層
建立應用之後 一定要去配置檔案中註冊才能生效
python 從入門到放棄
本人所有關於python的內容均為學習期間的整理的筆記,希望可以給學習者帶來些許幫助!不過一入it深似海!準備入行者請做好充分的心理準備!計算機的知識跟新迭代速度很快,不學習就會被淘汰!如果你打算入行然後找乙份安穩的工作安度餘生,那麼我還是建議去考公務員吧!這個行業可能並不適合你!有不少的人可能都覺...
學習python,從入門到放棄(6)
昨日留下了乙個猜年齡的 作業用於鞏固前面所學知識,今日給定了標準答案。我也給出了我的答案。對比來看老師的 簡潔明瞭,用稍少的 完成了目標,我的 雖然有些冗長而且有重複的 塊,但是新增了年齡隨機數還有在輸入y n的時候考慮了輸入別的內容的情況。型別轉換 str 可以轉換所有基本資料型別。索引與切片 字...
學習python,從入門到放棄(9)
read 可以一次性讀取所有檔案內容,但是這種方法非常容易造成記憶體溢位,因為當檔案特別大時,讀取時記憶體會存不下。readline 一次唯讀一行內容,可以解決這樣的問題,搭配迴圈語句來使用,使記憶體中同一時刻只會有一行內容。readlines 也會一次性讀取所有內容,但是會將每一行的內容放置在乙個...