day58-Django基礎-初識Django

  • 2019 年 10 月 4 日
  • 筆記

1.http協議前後台傳輸規範圖(了解)

2.創建Django項目

a.在cmd模式下創建(了解)

進入指定文件夾 cd /d + 指定盤目錄,再執行 django-admin startproject + 項目名字

b.pycharm下創建Django項目

3.啟動Django項目

python manage.py runserver,可以直接在pycharm下的Terminal下運行

4.關於前後台之間的交互,助於理解Django

socket 前台訪問後台不同介面.py

import socket    sk = socket.socket()  sk.bind(('localhost', 8080))  sk.listen(1024)      def login():      return bytes('this is a login api', encoding='utf-8')      def lottery():      return bytes('this is a lottery api', encoding='utf-8')      def shit():      return bytes('this is a eat_shit api', encoding='utf-8')      url_list = [      ('login', login),      ('lottery', lottery),      ('shit', shit)  ]    while 1:      connection, address = sk.accept()      browser_data = connection.recv(1024).decode('utf-8')  # 接收來自瀏覽器的數據      print(browser_data)        first_line = browser_data.split('rn')[0]  # 分離介面數據      url = first_line.split(' ')[1].strip('/')  # 獲取不同路徑的實體        print(url)      for i in url_list:          if i[0] == url:  # 如果來自前台拆分後的介面在我的介面列表裡面的話              msg = i[1]()  # 就執行這個函數              print(msg)              break      else:          msg = b'444 no found'        connection.send(b'HTTP/1.1 200 OKrnrn')  # 固定格式,首先發送的頭部,詳見本博文第一張圖      connection.send(msg)      connection.close()  

5.後台如何實現返回一個網頁

import socket  import time    sk = socket.socket()  sk.bind(('localhost', 8080))  sk.listen(1024)      def lottery():      return bytes('this is a lottery api', encoding='utf-8')      def shit():      return bytes('this is a eat_shit api', encoding='utf-8')      def login():      with open('login.html', 'r', encoding='utf-8') as f:  # 這裡就實現了一個返回網頁的功能          data = f.read()                                   # 首先當前 py 同目錄下放了一個 login.py 的html文件          data = data.replace('@@##@@##', time.asctime())  # 後台已經實現了一個網頁動態的功能          return bytes(data, encoding='utf-8')      url_list = [      ('login', login),      ('lottery', lottery),      ('shit', shit)  ]    while 1:      connection, address = sk.accept()      browser_data = connection.recv(1024).decode('utf-8')  # 接收來自瀏覽器的數據      print(browser_data)        first_line = browser_data.split('rn')[0]  # 分離介面數據      url = first_line.split(' ')[1].strip('/')  # 獲取不同路徑的實體        print(url)      for i in url_list:          if i[0] == url:  # 如果來自前台拆分後的介面在我的介面列表裡面的話              msg = i[1]()  # 就執行這個函數              print(msg)              break      else:          msg = b'444 no found'        connection.send(b'HTTP/1.1 200 OKrnrn')  # 固定格式,首先發送的頭部      connection.send(msg)      connection.close()

6.我的第一Django項目

a. settings.py文件的設置網頁目錄

b. settings.py文件的設置配置文件目錄

7.Django的初次運行