Django学习(二)

本文介绍了Django框架的基础知识,包括其作为Python Web框架的角色,常见特性如快速开发、安全性和可扩展性。接着,详细阐述了如何创建Django项目、应用及数据库模型,设置后台管理站点,包括视图函数、路由规则、数据库迁移和Admin站点的自定义。此外,还涉及了模型的创建和数据库的配置,如外键关联和管理界面的定制。
摘要由CSDN通过智能技术生成

1.框架

什么是框架

  • 软件框架就是为实现或完成某种软件开发时,提供了一些基础的软件产品,
  • 框架的功能类似于基础设施 ,提供并实现最为基础的软件架构和体系
  • 通常情况下我们依据框架来实现更为复杂的业务程序开发
  • 二个字,框架就是程序的骨架

Python 中常见的框架

  • 大包大揽 Django 被官方称之为完美主义者的Web框架。
  • 力求精简 web.py 和 Tornado
  • 新生代微框架 Flask 和 Bottle

2.Django框架

Django框架介绍

  • Django 是一个高级的Python Web框架,它鼓励快速开发和清洁,务实的设计。
  • 由经验丰富的开发人员构建,它负责Web开发的许多麻烦,因此您可以专注于编写应用程序。
  • 免费的和开源的。
  • 被官方称之为完美主义者的Web框架。
  • 官方网址:https://www.djangoproject.com/

Django框架的特点

  • 快得多
    Django旨在帮助开发人员尽快将应用程序从概念到完成。

  • 令人放心的安全。
    Django非常重视安全性,并帮助开发人员避免许多常见的安全错误。

  • 超出可扩展性。
    Web上一些最繁忙的站点利用了Django快速灵活扩展的能力。

3.Django快速入门:后台管理

1.创建Django项目:

在这里插入图片描述
创建后项目目录会出现以下:在这里插入图片描述

目录说明:

  • manage.py :一个命令行工具,可以使你用多种方式对 Django 项目进行交互
  • 内层的目录:项目的真正的Python包
  • init.py :一个空文件,它告诉Python这个目录应该被看做一个Python包
  • settings.py :项目的配置
  • urls.py :项目的URL声明
  • wsgi.py :项目与 WSGI 兼容的Web服务器入口

2.应用的创建和使用

1.创建第一个应用程序

  • 在Terminal中输入:python3 manage.py startapp bookApp
  • 目录结构如下图在这里插入图片描述
    2.编写视图函数
    打开文件 bookApp/views.py 并放入以下Python代码:
from django.http import HttpRequest, HttpResponse
# Create your views here.

# 视图函数(处理逻辑):django所有的视图函数接收请求,返回响应
def index(request):
    return HttpResponse('书籍管理系统')

def login(request):
    return HttpResponse('登陆')

def logout(request):
    return HttpResponse('注销')

def register(request):
    return HttpResponse('注册')

在Terminal中 python manage.py runserver 6789,显示启动在这里插入图片描述
浏览器中分别访问显示如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.路由规则
要在 bookApp 目录中创建一个 URLconf ,创建一个名为 urls.py 。

from django.contrib import admin
from django.urls import path, include

from bookApp.views import index, login, register, logout, detail

urlpatterns = [
    path('', index, name='index'),
    # <int:id>, <str:name> Django2
    path('<int:id>/', detail, name='detail'),
    path('login/', login, name='login'),
    path('logout/', logout, name='logout'),
]

根据配置文件 BookManage/settings 可知路由查找的主文件是 BookManage/urls.py , 因此在该文件
添加一条 url 规则:

from django.contrib import admin
from django.urls import path, include

from bookApp.views import index, login, register, logout

urlpatterns = [
    path('admin/', admin.site.urls),
    path('book/', include('bookApp.urls')),
]

4.启动服务
在Terminal中 python manage.py runserver
浏览器访问成功
在这里插入图片描述

3.项目的数据库模型

1.数据库创建
在pycharm右上角选择Database,点击加号,选择默认的数据库SQLite。
在这里插入图片描述
选择相对应的File与URL
在这里插入图片描述
2.创建数据库模型
编辑bookApp/models.py

from django.db import models

# 类->数据库表
class Book(models.Model):
    # 属性 -> 数据库的列名称
    title = models.CharField('图书名称', max_length=100)
    # auto_now=True,每次save时自动更新时间,auto_now_add=True,新建时自动生成时间,后续不会修改
    pub_date = models.DateField('图书发布时间', auto_now_add=True)
    change_time = models.DateTimeField('最后一次更改时间', auto_now=True)

    def __str__(self):
        return self.title

    class Meta:
        verbose_name = '图书管理'
        verbose_name_plural = verbose_name

    # 对象->数据库表的一条记录: b = Book(title='xxx')


class Hero(models.Model):
    gender_chioce = (
        (1, '男'),
        (2, '女'),
        (0, '其他'),
    )
    name = models.CharField("人物名称", max_length=20)
    gender = models.IntegerField("性别", choices=gender_chioce)
    content = models.CharField("人物描述", max_length=100)
    # 所属图书-外键关联, 书籍:人物=1:N(一对多关系,外键写在多的一端)
    hbook = models.ForeignKey(Book, on_delete=models.CASCADE)  # 级连删除

    def __str__(self):
        return self.name

    class Meta:
        verbose_name = '人物管理'
        verbose_name_plural = verbose_name

3.生成数据库表
激活模型:编辑 settings.py 文件,将应用加入到 INSTALLED_APPS 中
在这里插入图片描述
生成迁移文件:根据模型类生成 sql 语句
python manage.py makemigrations

4.启用后台Admin 站点管理

1.数据库迁移
python manage.py makemigrations
python manage.py migrate

2.创建管理员用户
python manage.py createsuperuser

  • 启动服务器,通过 “127.0.0.1:8000/admin” 访问,输入上面创建的用户名、密码完成登录
  • 进入管理站点,默认可以对 groups、users 进行管理
    在这里插入图片描述

3.管理界面本地化
编辑 settings.py 文件,设置编码、时区

LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'

4.自定义模型加入后台管理
打开 bookApp/admin.py 文件,注册模型

from django.contrib import admin
from bookApp.models import Book, Hero

# Register your models here.
class HeroInline(admin.StackedInline):
    model = Hero
    extra = 2
    
class BookAdmin(admin.ModelAdmin):
    # 列表页可以设置的信息
    # list_display:显示字段,可以点击列头进行排序
    list_display = ['id', 'title', 'pub_date']
    # list_filter:过滤字段,过滤框会出现在右侧
    list_filter = ['title']
    # search_fields:搜索字段,搜索框会出现在上侧
    search_fields = ['title']
    # list_per_page:分页,分页框会出现在下侧
    list_per_page = 10
    inlines = [HeroInline]

class HeroAdmin(admin.ModelAdmin):
    # 列表页可以设置的信息
    # list_display:显示字段,可以点击列头进行排序
    list_display = ['id', 'name', 'gender', 'hbook']
    # list_filter:过滤字段,过滤框会出现在右侧
    list_filter = ['name', 'hbook']
    # search_fields:搜索字段,搜索框会出现在上侧
    search_fields = ['name']
    # list_per_page:分页,分页框会出现在下侧
    list_per_page = 10

    # 添加、修改页属性
    # fields:属性的先后顺序
    fields = ['name', 'hbook', 'gender', 'content']
    
admin.site.register(Book, BookAdmin)
admin.site.register(Hero, HeroAdmin)

4.Django快速入门: 前台管理

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热到想喝冰阔落

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值