老男孩python全栈就业班第9期第3部分Django基础第61天Django昨日内容梳理

Django昨日内容梳理

1.内容回顾

1)HTTP 协议消息的格式

  a)请求(request)

             请求方法 路径 HTTP/1.1\r\n

             k1:v1\r\n

             ...\r\n

            请求体      <-- 可以有,可以没有 

      b)响应(response)

            HTTP/1.1 状态码 状态描述符\r\n

            k1:v1\r\n

            Content-type:text/html; charset=utf8\r\n

            响应正文         <--HTML内容     

2)Web框架的本质:

      a)收发 socket 消息 --> 按照 http 协议消息格式去解析消息

      b)路径和要执行的函数的对应关系 --> 主要的业务逻辑

      c)字符串替换  -->模板(特殊符号-->数据)

3)一个完整的请求流程:

      0)启动服务端,等待客户端(用户的浏览器)来连接 

      a)在浏览器地址栏输入url,与服务端建立连接,浏览器发送请求

      b)服务端收到请求消息,解析请求消息,根据路径和函数的对应关系,找到将要执行的函数

      c) 执行函数,打开HTML文件,进行字符串替换,得到一个最终要返回的HTML内容

      d)按照HTTP协议的消息格式要求,把HTML内容回复给用户浏览器(发送响应)

      e)浏览器收到响应的消息之后,按照HTML的规则渲染页面

      f)关闭连接

2.Django昨日内容梳理:

0)Django 安装

     pip3 install django==1.11.11

     pip3 install -i https//pypi.tuna.tsinghua.edu.cn/simple/ django==1.11.11

     Pycharm 安装的时候

         注意不要勾选那个选项(你们懂的)

1)Django 项目的启动:

      a)命令行的启动

           在项目的根目录下(也就是manage.py的那个目录),运行:

           python manage.py runserver IP:端口 --> 在指定的IP地址和端口启动

           python manage.py runserver 端口     --> 在指定的端口启动

           python manage.py runserver             -->默认在本机的8000端口启动 

      b)PyCharm启动

           点绿色的小三角,直接可以启动 Djaogo项目(前提是小三角左边是你的Django项目名)

2)配置相关 项目名/settings.py 文件

      a)Templates(存放HTML的位置) <-- 告诉Django去哪儿找我的HTML文件

      b)静态文件(css/js/图片)

            #静态文件保存目录的别名

            STATIC_URL = '/static/'

            #所有静态文件(css/js/图片)都放在我下面你配置的文件夹中

            STATICFILES_DIRS = [

                os.path.join(BASE_DIR, "static2") ,

            ]

       c)注释掉settings.py中,带有 csrf 的那一行(大概45-47行) 

 

实例

1.进入目录 mysite/mysite,添加文件 views.py

2.进入目录 mysite/mysite,修改文件 views.py,把 urls.py 方法的代码拷贝到文件 views.py

#!/usr/bin/env python
# -*- coding:utf-8 -*-

from django.shortcuts import HttpResponse, render


def yimi(request):
    #request参数保存了所有和用户浏览器请求相关的数据
    #return HttpResponse('hello yimi')
    # with open("templates/yimi.html", "r", encoding="utf-8") as f:
    #     data = f.read()
    # return HttpResponse(data)
    return render(request, "yimi.html")

def xiaohei(request):
    return HttpResponse('hello xiaohei')

def login(request):
    return render(request, 'login.html')

3.进入目录 mysite/mysite,修改文件 urls.py,专注处理路径

from django.contrib import admin
from django.urls import path
from .views import yimi, xiaohei, login

#保存了路径和函数的对应关系
urlpatterns = [
    path('yimi/', yimi),
    path('xiaohei/', xiaohei),
    path('login/', login),
]

  

实例

1.进入目录 mysite,新建文件 ospath.py,测试文件路径

2.进入目录 mysite,修改文件 ospath.py

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import os
ret = os.path.abspath(__file__)
print(ret)
ret2 = os.path.dirname(os.path.abspath(__file__))
print(ret2)
ret3 = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
print(ret3)
ret4 = os.path.join(ret3, "templates")
print(ret4)

 

posted on 2019-11-01 05:16  herisson_pan  阅读(9)  评论(0)    收藏  举报

导航