首页 > 编程语言 > 详细

web框架之Django(python3入门)

时间:2019-03-22 14:59:46      阅读:145      评论:0      收藏:0      [点我收藏+]

一、初识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(rapp01/,include(app01.urls)),   #正则部分不能加结束符$
                url(rapp02/,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了解

 

web框架之Django(python3入门)

原文:https://www.cnblogs.com/lich1x/p/10577926.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!