python Django框架快速入门教程(后台管理)

Python Django框架快速入门教程(后台管理)

随着Web开发的日益普及,Django作为Python的快速开发Web应用框架在业界已得到广泛的应用。在本教程中,我们将介绍如何使用Django框架来构建Web应用程序后台管理模块,主要内容包括:

  1. Django框架介绍和环境搭建
  2. 创建Django项目和应用
  3. 设计数据模型和创建数据库
  4. 创建后台管理界面和页面路由
  5. 如何使用后台管理界面进行增删改查操作

环境搭建

Django是一个纯Python编写的Web开发框架,它需要安装Python环境和Django库才能使用。在安装Django之前,首先需要安装Python,推荐使用Python3.x。

安装完Python之后,可以使用pip命令来安装Django:

pip install django

创建Django项目和应用

在安装完Django后,我们可以使用Django提供的命令行工具来创建一个Django项目:

django-admin startproject demo

其中demo是项目名称,创建成功后,会在当前目录下创建一个demo目录,该目录结构如下所示:

demo/
    manage.py
    demo/
        __init__.py
        settings.py
        urls.py
        wsgi.py

其中,demo/目录是我们新建的项目,manage.py是一个命令行工具,可用于在开发过程中执行Django项目的各种操作,demo/demo目录是我们的应用程序代码所在的地方,其中包括了一个settings.py文件,它包含了项目的配置信息,以及一个urls.py文件,它定义了项目的URL路由。

在创建完Django项目之后,我们需要再创建一个Django应用程序:

python manage.py startapp blog

其中blog是我们新创建的应用程序名称,创建成功后,会在demo/demo目录下创建一个blog目录,该目录结构如下所示:

blog/
    __init__.py
    admin.py
    apps.py
    models.py
    tests.py
    views.py
    migrations/
        __init__.py

其中,blog/models.py文件是我们定义数据模型的地方,admin.py文件是我们定义后台管理页面的地方,views.py文件是我们定义视图函数的地方。

设计数据模型和创建数据库

在开发Web应用程序时,首先需要设计应用程序的数据模型,并将其映射到数据库中。Django提供了ORM(对象关系映射)框架,它可以轻松地将Python对象映射到数据库中,使得我们能够使用Python代码来操作数据库,而不需要了解SQL语言。

在Django中,数据模型是通过Python类来定义的,我们只需要在blog/models.py文件中定义一个类,Django就会自动创建相应的数据表(如果它不存在的话)。

例如,我们可以定义一个博客文章数据模型:

from django.db import models


class Post(models.Model):
    title = models.CharField(max_length=100, verbose_name='标题')
    content = models.TextField(verbose_name='正文')
    created_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
    updated_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
    is_published = models.BooleanField(default=False, verbose_name='是否发布')


    class Meta:
        db_table = 't_post'
        verbose_name = '文章'
        verbose_name_plural = '文章'

上面的代码定义了一个Post类,它继承自Django提供的models.Model类。这个类中包括了四个实例属性:title、content、created_time、updated_time和一个布尔类型的实例属性:is_published。

Django会自动为Post类创建一个名为t_post的数据表。在这个表中,title字段是一个长度不超过100的字符串类型,content字段是一个文本类型,created_time字段会在记录创建时自动填充数据,updated_time字段会在记录更新时自动更新数据,is_published字段默认为False。

创建数据模型之后,我们需要在Django中创建数据库表。在代码修改完成之后,可以运行以下命令在数据库中自动生成表:

python manage.py makemigrations blog
python manage.py migrate

这些命令会自动根据models.py文件中的类定义创建数据库表,并将表结构同步到数据库中。

创建后台管理界面和页面路由

Django提供了一个名为Django Admin的自动生成的后台管理界面,该后台管理界面自动生成了数据表的操作界面,具有很好的可扩展性。我们可以通过简单地配置admin.py文件,将我们自定义的数据模型引入到Django Admin中,从而为我们的应用程序提供一个功能强大且美观的后台管理界面。

例如,我们可以定义一个博客文章的后台管理页面:

from django.contrib import admin
from .models import Post


@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
    list_display = ('title', 'created_time', 'updated_time', 'is_published')
    list_filter = ('created_time', 'updated_time', 'is_published')
    search_fields = ('title', 'content')
    date_hierarchy = 'created_time'

    fieldsets = (
        (None, {
            'fields': ('title', 'content', 'is_published')
        }),
    )

上面的代码定义了一个PostAdmin类,它继承自Django提供的admin.ModelAdmin类。该类中定义了list_display、list_filter、search_fields和date_hierarchy等类属性,用于配置文章管理页面的显示,排序和搜索条件。

最后一个fieldsets属性定义了相关表单的字段分组显示。

同时还需要在blog/admin.py文件添加一下代码:

from django.contrib import admin
from django.urls import path, re_path, include
from django.conf.urls import url
admin.autodiscover()

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

这段代码的作用是在Django的URL路由表中注册后台管理界面的URL,这样我们就可以访问/admin来访问后台管理页面。

如何使用后台管理界面进行增删改查操作

我们已经成功地创建了一个博客文章的数据模型,并将其加入了后台管理页面中。现在,我们可以使用Django Admin来快速地创建、编辑和删除博客文章。

  1. 创建文章

在后台管理页面中,我们可以点击添加按钮,跳转到添加文章的页面,可以通过填写表单来创建一篇新的文章。

  1. 编辑文章

在文章列表中,我们可以点击文章标题,跳转到编辑文章页面,可以通过修改表单内容来更新文章信息。

  1. 删除文章

在文章列表中,我们可以选中要删除的文章,然后点击删除按钮来删除文章。

  1. 查询文章

在文章列表中,我们可以使用表单输入关键字,然后点击搜索按钮来根据关键字查询文章信息。

示例:

首先,我们需要在blog/admin.py文件中引入Post类,并将其注册到Django Admin中。代码如下:

from django.contrib import admin
from .models import Post

@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
    list_display = ('title', 'created_time', 'updated_time', 'is_published')
    list_filter = ('created_time', 'updated_time', 'is_published')
    search_fields = ('title', 'content')
    date_hierarchy = 'created_time'

    fieldsets = (
        (None, {
            'fields': ('title', 'content', 'is_published')
        }),
    )

接下来,我们可以运行以下命令启动Django内置服务器:

python manage.py runserver

然后,在浏览器中访问http://127.0.0.1:8000/admin即可看到后台管理页面。在该页面中,我们可以使用刚才定义的PostAdmin类来管理博客文章数据。

我们可以点击添加按钮来添加一篇新文章,点击文章标题来编辑文章,选中文章并点击删除按钮来删除文章,使用搜索框输入关键字来搜索文章。

完整的Python Django框架快速入门教程(后台管理)就介绍到这里了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python Django框架快速入门教程(后台管理) - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • 在IPython中执行Python程序文件的示例

    在IPython中执行Python程序文件的步骤: 在IPython命令行中输入 %run 文件路径 运行命令,可以执行指定的Python程序文件。 如果你的程序文件包含函数或者全局变量,在运行程序文件之后,这些函数和变量也会被载入到IPython的命名空间中,可以直接在命令行中调用。 如果你修改了程序文件并保存后,可以在IPython命令行中使用 %run…

    python 2023年6月5日
    00
  • python使用7z解压软件备份文件脚本分享

    下面我将为您详细讲解如何使用Python的7z库来解压缩备份文件。 一、安装7z库 要使用Python的7z库,需要先安装7z命令行工具。在Windows系统上,可以从官方网站下载安装程序。在Linux系统上,可以使用包管理器来安装。 二、安装Python的7z库 使用Python的7z库需要先进行安装。可以使用pip来安装7z库。 在命令行中输入以下命令:…

    python 2023年6月3日
    00
  • Python 的 f-string 可以连接字符串与数字的原因解析

    标题:Python 的 f-string 可以连接字符串与数字的原因解析 F-string 是 Python3.6 中的一种字符串格式化方法,对于连接字符串和数字非常方便,以下是详细讲解。 知识背景 在 Python 中,字符串格式化可以使用相对简单的方法,例如使用 % 格式化字符串或使用 format() 方法。但是,自 Python 3.6 起,更简单,…

    python 2023年6月5日
    00
  • Python 生成所有组合

    让我们来讲解Python生成所有组合的使用方法。 生成所有组合 Python中,我们可以使用 itertools库中的 combinations() 函数来生成所有可能性的组合。combinations() 函数接受两个参数,分别是要生成组合的集合和组合元素的长度。以下是具体操作步骤: 导入 itertools 模块 在使用 itertools 库时,首先需…

    python-answer 2023年3月25日
    00
  • Python Deque 模块使用详解

    Python Deque 模块使用详解 什么是Deque Deque是 “double-ended queue”(双端队列)的缩写,在Python中是一个数据结构。它是一个可在两端添加和删除元素的序列,通俗点说它是一种可以在两端进行操作的序列。 Deque的主要方法 Deque包含以下方法: 方法 描述 append(x) 向右侧添加x元素 appendle…

    python 2023年6月3日
    00
  • python3 map函数和filter函数详解

    Python3 map函数和filter函数详解 在Python3中,map函数和filter函数是两个常用的函数,它们可以对列表、元组等可迭代对象进行操作。本文将详细介绍map函数和filter函数的用法,并提供两个示例。 map函数 map函数可以对可迭代对象中的每个元素应用一个函数,并返回一个新的可迭代对象,其中包含应用函数后的结果。 以下是map函数…

    python 2023年5月15日
    00
  • Django中datetime的处理方法(strftime/strptime)

    下面为你详细讲解 Django 中 datetime 的处理方法。 时间格式化 在 Django 中,datetime 格式化使用的是 strftime() 方法。该方法可以将一个 datetime 对象格式化成一个字符串。下面是一个示例代码: from datetime import datetime now = datetime.now() time_s…

    python 2023年6月2日
    00
  • python中读入二维csv格式的表格方法详解(以元组/列表形式表示)

    读入二维csv格式的表格方法 要读入二维csv格式的表格,可以使用Python中的csv模块。csv模块中提供了 reader 和 DictReader 两种方法可以用来读取csv文件。 其中,reader方法返回的是由行组成的列表,每行又由单元格组成。而DictReader方法返回的则是由行组成的字典列表,其中每个字典代表一行数据。 以下是以元组/列表形式…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部