zoukankan      html  css  js  c++  java
  • [oldboy-django][1初始django]web框架本质 + django框架 + ajax

    1 web框架本质
        浏览器(socket客户端)
            - 2 发送请求(ip和端口,url http://www.baidu.com:80/index/)
                - GET
                    请求头(数据请求行的url上: Http1.1 /index?nid=2&name=alex)
                    请求体(空)
                - POST
                    请求头
                        http1.1 /index?p=123 或者 http 1.1 /index/
                    请求体
                        包含数据
    
            4 接收响应
                - 普通响应
                    --页面直接显示
                    -- 双方closed
    
                - 重定向响应
                    -- 再发起一次http请求
    
        服务器(socket服务端)
            1 启动服务器,并监听ip和端口,等待用户连接
            3 接收请求,处理并返回
                - 普通返回(字符串) # render, HttpResponse
                    -- 响应头
                    -- 响应体
    
                - 重定向返回(只有响应头,响应体为空)
                    -- 响应头
                        LOCATION: "http://www.baidu.com"
    2 django web框架
    
        1 创建Project
            admin-django startproject mysite
        2 配置settings.py
            - 模板路径TEMPLATES DIRS
            - 静态文件路径 STATIC_URL, STATICFILES_DIRS
            - 额外配置:
                MIDDLEWARE = [
                    'django.middleware.security.SecurityMiddleware',
                    'django.contrib.sessions.middleware.SessionMiddleware',
                    'django.middleware.common.CommonMiddleware',
                    # 'django.middleware.csrf.CsrfViewMiddleware', # 这个本来不是注释的
                    'django.contrib.auth.middleware.AuthenticationMiddleware',
                    'django.contrib.messages.middleware.MessageMiddleware',
                    'django.middleware.clickjacking.XFrameOptionsMiddleware',
                ]
    
        4 路由关系
            url  ->  函数
    
    
        5 视图函数
            def login(request):
                request.method
                request.POST(获取请求体数据)
                request.GET (获取请求头url的数据)
    
                return HttpResponse("字符串")
                return render(request, "login.html", {})
                    1 获取模板 + 数据 进行渲染(成字符串)
                    2 HttpResponse(字符串)
                return redirect("要跳转的网址")
    
        5 模板渲染
            {{ msg_str }}
    
            {{ msg_list.0 }}
    
            {{ msg_dict.key }}
    
            {% for item in msg_list %}
            {% endfor%}
    
            {% if 1>2 %}
            {% endif %}
    
    
    3 ajax(特殊的向后台发数据方式) --单独前端技术
        
        - 引入jquery
        - $.ajax({
            url: '提交的地址',
            type: 'post', // 提交的方法
            data: {'k1':'v1, 'k2':'v2'},
            success: function(data){
            // 当服务器处理完成后,回调函数
            }
        })
        
        - ajax 和 form区别 
            -- form表单提交,页面会刷新(不能满足需求:数据错误,不能保留对话框)
            -- ajax提交页面不刷新,实现上面需求
            -- ajax存在缺点:数据对的时候,服务器不能实现跳转,只能用前端实现跳转
                location.href = "/classes/"
    
    4 提交数据
            模态对话框(ajax)(登录框)
                - 少量输入框
                - 数据少
            新url方式(京东登录框,要打广告)
                - 操作多
                - 大量的数据
  • 相关阅读:
    Python 压缩图片至指定大小
    nginx 服务器自签https协议 (Let’s Encrypt)
    Django 批量创建app
    常见的设计模式(python )———适配器模式
    带你完全理解Python中的metaclass,type,class之间的恩怨情仇...
    常见的设计模式(python)———单例模式(转载)
    常见的设计模式(python)———工厂模式
    常见的设计模型(python)——建造者模型
    Django-restframework 概述及目录
    Java多线程开发
  • 原文地址:https://www.cnblogs.com/liuzhipenglove/p/7735091.html
Copyright © 2011-2022 走看看