Django项目——视图及路由

非 Y 不嫁゛ 提交于 2020-02-26 17:36:46

创建视图:
在APP下打开views.py文件,没有则新建一个同名文件,写入下面内容:

from django.http import HttpResponse

def test1(request):
    return HttpResponse("哈哈哈")

urls中配置路由:

from django.contrib import admin
from django.urls import path
from . import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('test1/',views.test1),
]

views.test1是主路由,test1/是设置的路由
在浏览器输入“http://127.0.0.1:8000/test1/”得到如下结果:
在这里插入图片描述

from django.shortcuts import render,redirect,reverse
from django.http import HttpResponse

# Create your views here.
def test1(request):
    return HttpResponse("doc目录下的test1")

def test2(request,**kwargs):	# 接收从url中传入的参数
    a = kwargs.get("q1")
    return HttpResponse("doc目录下的test2  {}".format(a))

def test3(request):
    return redirect("/doc/test1/")  # 重定向

def test4(request):
    return redirect(reverse("ttt")) # reverse将名字重新解析成地址

def test5(request,age):
    return HttpResponse("年龄{}".format(age))

def test6(request):
    name = "列表"
    return render(request,"doc/list.html",context={"name":name})

render():def render(request, template_name, context=None, content_type=None, status=None, using=None):返回一个HTML页面
HTML文件统一放在主目录的templates 文件夹中
需在settings中进行配置TEMPLATES中的DIRS

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')] ,
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]
from django.urls import path
from . import views

路由的设置:
urlpatterns = [
    path('test1/', views.test1,name="ttt"), 
    # name取名,使用reverse将名字重新解析成地址,路径改变也不需要修改
    path('test2/', views.test2,{"q1":"传参"}),
    path('test3/', views.test3),
    path('test4/', views.test4),
    path('test5/<int:age>/', views.test5),	# 使用<>传参,int为转换器,限定传参的类型
    path('test6/', views.test6),

默认支持的转换器:

  • str,匹配除了路径分隔符(/)之外的非空字符串,这是默认的形式
  • int,匹配正整数,包含0。
  • slug,匹配字母、数字以及横杠、下划线组成的字符串。
  • uuid,匹配格式化的uuid,如 075194d3-6885-417e-a8a8-6c931e272f00。
  • path,匹配任何非空字符串,包含了路径分隔符
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!