Django创建应用以及配置URL配置

2020-05-16  本文已影响0人  生命有一种执着

1、创建views视图

在项目目录上创建views.py文件

views.py

2、编写代码测试

views.py


#导入包

from django.httpimport HttpResponse

#定义方法

def index(request):

return HttpResponse("Django项目")


urls.py


from . import views

path('index/',views.index),


3、创建应用

服务器中创建


python manage.py startapp teacher(包名)


4、pycharm中下载至本地

5、URL组成

https://www,baidu.com/web?query=星星

协议    域名(IP+端口) 路径  参数

6、路由系统(URL)

URL配置------>URL路径到视图函数的一个映射

(1)path(route,views,kwargs=None,name=None)

                route:字符串,放的是url路径

                views:视图

                kwargs:额外参数,传入的字典

                        path('student/',views.student,kwargs={name:XXX}),

                name:url命名

                        path('index/',views.index,name='index'),#name命名,无论url怎么变化,都将跳转至index页面

                        #name命名法

                            def login_1(request):

                                    return redirect("index")

  (2)通过<>来捕获参数


views.py:

             def detail(request,id):

                        return HttpResponse("{}号学生的详情!".format(id))

urls.py:

            path('detail/<id>',views.detail), #<id>用来捕获对应学号的学生

(3)路径转换器

路径转换器用来限制url里面参数的类型;

<转换区:参数>

str:匹配str字符串(默认)

int:匹配整型


            urls.py:

            path('detail/<int:id>',views.detail), #<id>用来捕获对应学号的学生

(4)重定向操作


views.py:

from django.shortcutsimport redirect

#操作重定向至百度

def test(request):

        return redirect("http://www.baidu.com")

urls.py:

path('test/',views.test),#重定向操作,跳转至百度


views.py:

#测试登录成功后跳转至学校官网详情页面

def login(request):

        return redirect("/school/")#硬编码,不灵活

urls.py:

path('login/',views.login),#重定向操作,跳转至百度

(5)包含其他URL:include

想要访问目录中其他的APP视图,需要使用include,如果这个路由规则对应的事include,就去找这个include包含的urls,访问的url由你的路由规则决定;


根目录下的urls.py:

#使用include,包含URLconf,访问teacher视图

path('teacher/',include('teacher.urls'))

teacherAPP中的urls:

from django.urlsimport path

from teacherimport views

urlpatterns = [

    path('student/',views.student),

    path('detail/',views.detail),

]

teacherAPP中的views:

from django.shortcutsimport render

from django.httpimport HttpResponse

# Create your views here.

#学生详情

def student(request):

    return HttpResponse("学生详情")

#传入参数

def detail(request,name):

    return HttpResponse("{}的成绩信息".format(name))

使用额外参数(在根目录下添加额外参数,相当于默认参数):

#使用include,包含URLconf,访问teacher视图

path('teacher/',include('teacher.urls'),kwargs={'name':'赵子龙'}),#kwargs是额外参数

在APP下的views中,需要添加name参数:

#学生详情

def student(request,name):

    return HttpResponse("{}学生详情".format(name))

#传入参数

def detail(request,name):

    return HttpResponse("{}的成绩信息".format(name))

(6)指定跳转页面

当想要跳转至指定页面,需要在当前应用下备注应用的名称;

例如:在teacher下,想跳转至student功能页面时候,需要在teacher的urls中添加app_name = 'teacher'(名称自己定,路径后面加name指定信息):


from django.urlsimport path

from teacherimport views

app_name ="teacher"(将app_name加入)

urlpatterns = [

    path('student/',views.student,name='student'),

    path('detail/',views.detail,name='detail'),

]

(在views中,需要在跳转功能代码中指定名称,“teacher:student”)

from django.shortcutsimport redirect

from django.httpimport HttpResponse

# Create your views here.

#学生详情

def student(request,name):

    return HttpResponse("{}学生详情".format(name))

#传入参数

def detail(request,name):

    return redirect("teacher:student")

上一篇下一篇

猜你喜欢

热点阅读