­

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的初次运行