美文网首页
Django创建应用以及配置URL配置

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

作者: 生命有一种执着 | 来源:发表于2020-05-16 15:29 被阅读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")

    相关文章

      网友评论

          本文标题:Django创建应用以及配置URL配置

          本文链接:https://www.haomeiwen.com/subject/syytohtx.html