web框架之Django(python3入门)

一、初识Django

Django 是一个web框架
web框架的本质
- web框架的本质就是一个socket服务端
b/s架构:浏览器---服务器,本质也是c/s架构

二、HTTP协议

http请求协议:
    请求首行:
        请求的方法 空格 请求地址 空格 请求协议
            GET        /index     HTTP/1.1\r\n
    请求头:
        (key:value的形式展现)
        'Connection: keep-alive\r\n
        Pragma: no-cache\r\n
        Cache-Control: no-cache\r\n
        Upgrade-Insecure-Requests: 1\r\n
        User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36\r\n
        Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\r\n
        Accept-Encoding: gzip, deflate, br\r\n
        Accept-Language: zh-CN,zh;q=0.9\r\n\r\n'
    请求体:
        可以携带data数据(向服务器发送的数据)
        如:用户名/密码等信息
http请求协议
http响应协议:
    响应首行:
        HTTP/1.1 200 OK \r\n
    响应头:
        key:value \r\n
        xx:xx \r\n
        yy:yy \r\n
    响应体:
        响应数据...
http响应协议

三、Web框架简介

把一个请求拆分成几部分,每个部分干相同的事
Python中的web框架:
    Django:大而全的框架
    flask:轻量级 微框架
    Tornado:高性能的框架

四、Django的安装和使用

- 安装Django的三种方式:
    1 在cmd窗口下:pip3 install django == 1.11.9
    2 在pycharm的Terminal窗口下: pip3 install django == 1.11.9
    3 在pycharm - setting中安装,选择版本号: 1.11.9
- 卸载Django
    1 pip3 unistall django
    2 在pycharm-setting中进行卸载
- 安装完成后dgango后会在python36\Scripts,会多一个django-admin.exe
- 创建Django项目
    命令行 django-admin startproject myfirstdjango(了解就行)

五、Django项目的目录结构

- manage.py 项目入口 运行项目需要用到
- templates文件夹:放模板文件,放html模板

- 项目名的文件夹(*****现阶段需要记住的)
    setting.py 项目配置文件(整个项目的配置信息)    *****
    urls.py 路由和函数的映射关系  ***** 
    wsgi.py django框架帮咱写的socket

- app名字的文件夹
    migrations 数据库迁移相关的,记录变化的文件
    admin.py 后台管理相关(知道就行)
    apps.py app的配置信息(app自己的配置信息)
    models.py 数据库相关,函数取数据用的 *****
    tests.py 测试相关的
    views.py 视图(业务逻辑)   *****

- app的概念(每个django项目至少有一个app!!!)
    大学 ---- django项目
    xx学院 ---- 一个个的app
    创建app的命令(新建app01)
        python3 manage.py startapp app01
目录结构

六、运行Django项目

python3 manage.py runserver
重点*****
    安装django
    创建django项目
    创建app
    运行项目
第一种方式-命令行
- pycharm中创建项目 输入项目名称+自定义app名称+解释器选择
- pycharm中运行项目 绿色箭头运行
第二种方式-用pycharm

七、Django框架的简单使用

- django项目中重点需要关注的文件夹:
    - urls.py
    - views.py
    - models.py
Django项目文件夹中重点关注的文件
1 在浏览器输入 http://127.0.0.1/index 并在页面显示hello django
    > 首先在views.py中键入新手三件套
        from django.shortcuts import render
        from django.shortcuts import HttpResponse
        from django.shortcuts import redirect
    > 其次在views.py中输入index页面的函数
        def index(request):
            return HttpResponse('hello django')     #可以向浏览器返回字符串
    > 接着在urls.py中新增路由和函数的映射关系
        from app01 import views
        urlpatterns = [
            url(r'^index/', views.index),
        ]
    > 接着点击绿色箭头运行该项目
    > 最后打开浏览器输入 http://127.0.0.1/index查看页面显示内容
Django框架的简单使用之一
2 在浏览器输入 http://127.0.0.1/index 向浏览器返回一个页面
    > 首先在views.py中键入新手三件套
        from django.shortcuts import render
        from django.shortcuts import HttpResponse
        from django.shortcuts import redirect
    > 其次在views.py中输入index页面的函数
        def index(request):
            #render是一个方法,第一个参数传request对象,第二个参数是模板文件的名字
            return render(request,'index.html')   
    > 接着在templates文件夹中新建html页面,命名问index.html,并在页面中随意写一些内容
        <body>
        <h1>django的index页面</h1>
        <a href="https://baidu.com">点我看美女</a>
        </body>
    > 在浏览器输入 http://127.0.0.1/index 查看结果
Django框架的简单使用之二
3 在浏览器输入 http://127.0.0.1/index 重定向到www.baidu.com
    > 首先在views.py中键入新手三件套
        from django.shortcuts import render
        from django.shortcuts import HttpResponse
        from django.shortcuts import redirect
    > 其次在views.py中输入index页面的函数
        def index(request):
            # 返回重定向
            # 1xx 接受的请求正在处理,信息性状态码
            # 2xx 成功状态码
            # 3xx 重定向状态码
            # 4xx 客户端错误状态码
            # 5xx 服务器错误状态码
            return redirect('https://www.baidu.com')
    > 在浏览器输入 http://127.0.0.1/index 查看结果
Django框架的简单使用之三

八、Django框架层面分析

- 路由层:
- 基本使用
    # url是一个函数,函数参数,第一个参数是一个正则表达式
    # 用户请求的路径只有匹配成功,才去执行后面的函数
    url(r'^index$,views.index)
路由层
- 无名分组
    url(r'^index/(\d+)/(\d+)', views.index)
    括号内的内容会被分组区分开,当作一个个参数,传入到都好后面的views.index视图函数中
    视图函数会接受这些参数
无名分组
- 有名分组
    url(r'^index/(?P<cc>\d+)/(?P<ee>\d+)', views.index)
    括号内的内容会被分组分出来,当作参数,以key:value的形式传入后面的视图函数
    视图函数会接受这些参数
有名分组
- 反向解析
    1 补充重定向
    2 反向解析,通过名字,反解出名字对应的url地址
        例1:应用在视图函数中
        urls.py  
            url(r'^test222/$', views.test,name='ttt')

        views.py
            from django.shortcuts import reverse
            def index(request):
                url = reverse('ttt')
                return redirect(url)

        例2:应用在模板中
            <a href="{% url 'ttt' %}">点我看新美女</a>
反向解析
- 路由分发
    例如:
        使用命令创建app02  python3 manage.py startapp app02
        ### 注意,新建app一定要在setting.py中进行注册
            ### 注册app,两种方式都可以,官方推荐使用下面的第一种
            找到INSTALLED_APPS = [],并在其中添加以下命令,
            1 'app02.apps.App01Config',
            2 'app02',

        使用方式:
            1 在项目文件夹的urls.py中,控制不同app的urls.py
                urlpatterns = [
                url(r'app01/',include('app01.urls')),   #正则部分不能加结束符$
                url(r'app02/',include('app02.urls')),   #正则部分不能加结束符$
                ]
            2 在app01文件夹中的urls.py中,控制本app的路由
                urlpatterns = [
                    url(r'^app01test/', views.test),
                ]
            3 在app02文件夹中的urls.py中,控制本app的路由
                urlpatterns = [
                    url(r'^app02test/', views.test),    #给该条路由重命名为ttt
                ]
            4 在不同app的文件夹中的views.py文件中输入定义test函数

            5 在web页面中输入测试:http://127.0.0.1:8000/app01/app01test/
                                http://127.0.0.1:8000/app02/app02test/
路由分发
- django2.0版本的path
    - django2.x的re_path就是1.x的url
    - django2.x的path是新增的功能
        path('准确路径',view.test,name='ttt')
Django2.x版本的path了解

猜你喜欢

转载自www.cnblogs.com/lich1x/p/10577926.html