Django路由系统

普通的url-->函数

urls.py:

from django.contrib import admin
from django.http import HttpResponse
from django.urls import path


def index(request):
    return HttpResponse('index')


urlpatterns = [
    path('admin/', admin.site.urls),
    path('index/',index),

         
]

有传递参数的url

from django.contrib import admin
from django.http import HttpResponse
from django.urls import path,re_path



def add(request,a1):
    return HttpResponse(a1)

def add2(request,name,id)
    return HttpResponse(id)

urlpatterns = [
    path('admin/', admin.site.urls),
    #django2以上版本,使用正规则要用re_path, 之前的版本使用url
    re_path('add/(\w+)',add),
    #一样功能
    #path('add/<name>',add),
    re_path(r'^add2/(?P<name>\w+)/(?P<id>\d+)/$',add),
    #path('add2/<name>/<id>/',add2

        
]

路由分发

使用include

 


from django.contrib import admin
from django.http import HttpResponse
from django.urls import path,re_path,include

import app
from app import views

def default(request):
    return HttpResponse('404')

def add(request,name,id):
    return HttpResponse(id)

urlpatterns = [
    path('admin/', admin.site.urls),
    path('app/',include('app.urls')),
 
]

再然后在app下建立urls.py,并导入views,再views下定义函数


from django.urls import path,re_path
from app import views

urlpatterns = [
    path('index.html',views.index),
    
]
from django.http import HttpResponse
from django.shortcuts import render

def index(request):
    user_list=[
        'tom',
        'jimmy',
        'mary'
    ]
    return render(request,'index.html',{'userlist':user_list})


接受传递的参数

#表单post请求提交数据,根据name名获得value
request.POST.get('xxxx')
#url参数 /add/1/
request.GET.get('xxx')

别名和反向解析

template:使用url标签

py:使用from django.urls import reverse()函数

视图函数中:reverse()

#urls.py

from django.contrib import admin
from django.http import HttpResponse
from django.shortcuts import render
from django.urls import path, re_path, include, reverse


def login(request):
    print(reverse("LOG"))
    if request.method=='GET':

        return render(request,'login.html')
    else:
        user=request.POST.get('user')
        pwd=request.POST.get('pwd')
        if user=='tom' and pwd=='123':
            return HttpResponse('success')
        else:
            return HttpResponse('failure!')
urlpatterns = [
    path('admin/', admin.site.urls),
    #####定义别名
    path('login/',login,name='LOG')
]
#login.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录验证</title>
</head>
<body>
###使用url标签
<form action="{% url 'LOG' %}" method="post">
    用户名 <input type="text" name="user">
    密码 <input type="password" name="pwd">
    <input type="submit"value="submit">
</form>
</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值