Python 进阶文集

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

2018-04-27  本文已影响1人  繁华落尽丶lee

课程: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界面进行测试和优化。

上一篇下一篇

猜你喜欢

热点阅读