美文网首页Python 进阶文集
【Django】入门实践指南之Admin&URL分发|第

【Django】入门实践指南之Admin&URL分发|第

作者: 繁华落尽丶lee | 来源:发表于2018-04-27 22:04 被阅读1次

    课程:Django入门项目 - 论坛系统
    打卡时间:2018.4.27

    目录

    【Django】入门实践指南之环境搭建|第0篇
    【Django】入门实践指南之系统设计|第1篇
    【Django】入门实践指南之模型设计|第2篇
    【Django】入门实践指南之模板引擎|第3篇
    【Django】入门实践指南之测试&静态文件配置|第4篇
    【Django】入门实践指南之Admin&URL分发|第5篇
    【Django】入门实践指南之模板复用&表单处理|第6篇

    前言

    上一篇学习了如何进行简单的测试和添加静态文件。这篇将会学习Django Admin后台和URL分发相关知识。

    一、Django Admin

    在我们创建项目的时候,Django已经为我们配置好Admin后台。我们只需创建一个管理员账号即可。

    python manage.py createsuperuser
    

    根据提示,会依次让你设置:名称,邮箱,密码等。

    完成后就可以登陆后台,运行服务器。打开http://127.0.0.1:8000/admin

    Django已经配置了一些功能,可以添加用户和组的权限管理。

    如何将Board添加到后台呢?很简单只需配置admin.py文件即可。

    from django.contrib import admin
    from .models import Board
    
    # Register your models here.
    admin.site.register(Board)
    

    此时刷新,发现多了一项Boards。这时可以通过后台进行模块操作。

    二、URL调度

    《URL 调度》官方文档

    这是boards/urls.py中的配置。

    from django.urls import path, re_path
    from . import views
    
    urlpatterns = [
        path('', views.home, name='home'),
        re_path(r'^(?P<pk>\d+)/', views.board_topics, name='board_topic')
    ]
    

    path()re_path()函数来匹配路径。

    在根路由中,配置如下:

    from django.contrib import admin
    from django.urls import path, include
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('boards/', include('boards.urls'))
    ]
    

    URL调度器URLConfDjango应用中的基础部分。Django 2.0与其他版本的存在差别,url函数被path函数替代。

    一个项目中可以有很多urls.py分布在多个应用中。Django项目中urls.py只是一个入口,称为根路由配置。被定义在setting.py中。

    ROOT_URLCONF = 'myproject.urls'
    

    这个不需要我们来配置,Django已经自动配置好了。

    Django接受一个请求(request),它就会在项目的URLconf中查找匹配项,从urlpatterns变量的第一条开始。如果找到就把请求发送给path()的第二个参数:视图函数。如果没找到会抛出一个404异常。

    2.1 基本URLs路由

    简单的路由配置,使用path()方法。例如:

    path('admin/', admin.site.urls),
    

    2.2 高级URLs路由

    高级的URL路由使用方法是通过正则表达式,来动态匹配数据创建URL。例如:

    re_path(r'^(?P<pk>\d+)/$', views.board_topics, name='board_topic')
    

    使用表达式来匹配数字,关键字参数是pk。在board_topic方法的参数中需要有该字段。

    该路由匹配的内容是http:127.0.0.1:8000/boards/1

    templates目录中,创建一个名为topic.html模板。

    templates/topic.html

    {% load static %}<!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>{{ board.name }}</title>
        <link rel="stylesheet" href="{% static 'css/bootstrap.min.css' %}">
    </head>
    <body>
        <div class="container">
            <ol class="breadcrumb my-4">
                <li class="breadcrumb-item">Boards</li>
                <li class="breadcrumb-item active">{{ board.name }}</li>
            </ol>
        </div>
    </body>
    </html>
    

    刷新界面,会发现有所不同。

    三、小结

    以上就是本篇的全部内容,如何创建管理员账号,将自定义的Mode添加到后台。还学习了URL调度器的相关知识。

    有做好了一个界面,下一篇会对topic界面进行测试和优化。

    相关文章

      网友评论

        本文标题:【Django】入门实践指南之Admin&URL分发|第

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