diango入门

廉价感情. 提交于 2019-12-11 23:28:54

web复习

五层

应用层

传输层

网络层

数据链路层

物理层

socket 套接字 位于应用层和网络传输层之间的虚拟层 一组接口

c/s-->b/s

web框架 原理

1.百度 socket 服务端

2.socket服务端启动

3.绑定ip和端口

4.监听等待连接

8.接受数据

9.返回数据

12断开连接

浏览器socket客户端

5.socket服务端启动

6.连接(ip和端口)

7.发送数据

10.接受数据

11.断开连接

web框架本质--> socket服务端

超文本

双工通信

HTTP工作原理

在浏览器地址栏键入URL,按下回车之后会经历以下流程:

  1. 浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址;
  2. 解析出 IP 地址后,根据该 IP 地址和默认端口 80,和服务器建立TCP连接;
  3. 浏览器发出读取文件(URL 中域名后面部分对应的文件)的HTTP 请求,该请求报文作为 TCP 三次握手的第三个报文的数据发送给服务器;
  4. 服务器对浏览器请求作出响应,并把对应的 html 文本发送给浏览器;
  5. 释放 TCP连接;
  6. 浏览器将该 html 文本并显示内容;

HTTP状态码

所有HTTP响应的第一行都是状态行,依次是当前HTTP版本号,3位数字组成的状态代码,以及描述状态的短语,彼此由空格分隔。

状态代码的第一个数字代表当前响应的类型:

  • 1xx消息——请求已被服务器接收,继续处理
  • 2xx成功——请求已成功被服务器接收、理解、并接受
  • 3xx重定向——需要后续操作才能完成这一请求
  • 4xx请求错误——请求含有词法错误或者无法被执行
  • 5xx服务器错误——服务器在处理某个正确请求时发生错误

虽然 RFC 2616 中已经推荐了描述状态的短语,例如"200 OK","404 Not Found",但是WEB开发者仍然能够自行决定采用何种短语,用以显示本地化的状态描述或者自定义信息。

https://www.cnblogs.com/maple-shaw/articles/9060408.html

web框架功能

1.socket收发消息(wsgiref,uwsgi)

2.根据不同的路径返回不同的结果

3.返回动态页面(字符串的替换) 模板渲染(jinja2)

web框架的分类

diango:2 3

flask:2

tornado:1 2 3

其他的分类:

Django

其他: flask tornado

下载

  1. 命令行

    pip install django==1.11.26 -i https://pypi.tuna.tsinghua.edu.cn/simple

  2. pycharm

创建项目

  1. 命令行

    django-admin startproject 项目名

  2. pycharm

    file > new project > django > 输入路径 > 选择解释器 _> create

启动项目

  1. 命令行

    python manage.py runserver # 127.0.0.1:8000

    python manage.py runserver 80 # 127.0.0.1:80

    python manage.py runserver 0.0.0.0:80 # 0.0.0.0:80

  2. pycharm

    点绿三角 django 前面是dj

    可以修改配置 可以改IP和端口

diango中.idea

自己pycharm配置包配置,打开别人的项目要先把.idea删掉

diango中settings

静态文件配置

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))  #文件夹根目录

DEBUG = True   #因为启动出错调试模式 上线后改为Flase,出错不报错,给用户更好的用户体验

ALLOWED_HOSTS = ['*'] #让所有的用户可以访问

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',  #diango的服务器引擎
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

LANGUAGE_CODE = 'en-us'       #语言

TIME_ZONE = 'UTC'   #时区:英国的 改为上海的:shanghai

STATIC_URL = '/static/'    #静态文件夹的别名,配置静态文件要以/static/为开头

STATICFILES_DIRS = [os.path.join(BASE_DIR,'static1')] 
                 # join(BASE_DIR必须是这个,静态文件夹static1)
                    # 加上静态文件的存放路径

diango中url

静态文件配置

STATICFILES_DIRS = [                  # 路由
    os.path.join(BASE_DIR,'static1'),   # 存放静态文件的路径
    os.path.join(BASE_DIR,'static1'),
]

使用-写函数的格式

from django.shortcuts import HttpResponse, render #导入返回字符串的包HttpResponse,
                                                    #导入返回页面的包render

def index(request):             # 函数里写处理逻辑,request拿到路径,固定写法
    print(request.path_info)    # diango自己会拿到对的应路径
    # return HttpResponse('<h1>index</h1>') # 返回字符串
    return render(request, 'index.html')    # 返回页面
                                            #根据路径返回templates中的index.html文件

路由

url(r^'用户输入输入的路径 0.0.0.0:80/index/',不加括号的函数名)

urlpatterns = [     
    url(r'^admin/', admin.site.urls),
    url(r'^index/', index),   # 路径和函数的对应关系,
    url(r'^modal/', modal),  
]

diango中templates

某.html的静态文件配置

引入静态文件以STATIC_URL开头

<head>  
    <title>Title</title>
    <link rel="stylesheet" href="/static/plugins/bootstrap-3.3.7-dist/css/bootstrap.min.css">
    <link rel="stylesheet" href="/static/plugins/font-awesome-4.7.0/css/font-awesome.min.css">
    
    <script src="/static/js/jquery.js"></script>
    <script src="/static/plugins/bootstrap-3.3.7-dist/js/bootstrap.js"></script>
</head>
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!