• Django(基础篇)


    1.请求周期


    url> 路由 > 函数或类 > 返回字符串或者模板语言?
    Form表单提交:
            提交 -> url > 函数或类中的方法
                                               - ....
                                               HttpResponse('....')
                                               render(request,'index.html')
                                               redirect('/index/')
           用户 < < 返回字符串
           (当接受到redirect时)自动发起另外一个请求
           --> url .....
    Ajax

         $.ajax({        
    url: '/index/', data: {'k': 'v', 'list': [1,2,3,4], 'k3': JSON.stringfy({'k1': 'v'}))}, $(form对象).serilize() type: 'POST', #请求方式 dataType: 'JSON': #数据格式 traditional: true, #若$(form对象).serilize(),则必须使用traditional: true, success:function(d){ location.reload() # 刷新 location.href = "某个地址" # 跳转 } })         提交 -> url -> 函数或类中的方法         HttpResponse('{}') 指定发送 发什么是什么         render(request, 'index.html', {'name': 'v1'}) 受到数据 进行渲染 最后变成字符串发送给后台         <h1>{{ name }}</h1> -->         <h1>v1</h1> XXXXXXX redirect... 用户 <<<<< 字符串

    2.路由系统URL


    (1)通过URL传递默认参数

    #urls.py
    
    from app_1 import views
    urlpatterns = [
        path('index/', views.index,{'name':'root'}), #默认参数
    ]

    接收URL传递的默认参数

    #views.py
    
    def index(request,name): #一定要在request后面添加形参name
        print(name)
        return HttpResponse('OK')

    (2).命名空间

    project.urls.py

    from django.contrib import admin
    from django.urls import path,include
    from app_1 import views
    urlpatterns = [
        path('a/', include('app_1.urls', namespace='author')),
    ]

    app.urls.py

    from django.contrib import admin
    from django.urls import path,include
    from app_1 import views
    app_name='app_01'   #一定要添加app_name
    urlpatterns = [
        #path('admin/', admin.site.urls),
        #path('index/', views.index,{'name':'root'}),
        path('index/', views.index,name='index'),
    ]

    根据name生成url

    #views.py
    from django.shortcuts import render,HttpResponse
    from django.urls import reverse
    def index(request):
        v=reverse('author:index')  #通过name反查url地址
        print(v)
        return HttpResponse('OK')

    django中的路由系统和其他语言的框架有所不同,在django中每一个请求的url都要有一条路由映射,这样才能将请求交给对一个的view中的函数去处理。其他大部分的Web框架则是对一类的url请求做一条路由映射,从而是路由系统变得简洁。

  • 相关阅读:
    [学习笔记]Java代码中各种类型变量的内存分配机制
    记录一次linux线上服务器被黑事件
    浅谈Facebook的服务器架构(组图)
    make: *** [sapi/cli/php] Error 1 解决办法
    linux CentOS 系统下如何将php和mysql命令加入到环境变量中
    Linux系统安装Apache 2.4.6
    日请求亿级的QQ会员AMS平台PHP7升级实践
    聊一聊淘宝首页和它背后的一套
    PHP与MySQL通讯那点事
    PHP多进程(4) :内部多进程
  • 原文地址:https://www.cnblogs.com/zhuifeng-mayi/p/9044493.html
Copyright © 2020-2023  润新知