Django框架

Django

Django是一个高级的Python Web框架 ,允许快速开发安全且可维护的网站 。它遵循MVC设计模式,即Model(模型)+View(视图)+ Controller(控制器)设计模式,但在Django中更关注模型 (Model)、模板 (Template)和视图 (Views),称为**MTV模式。**这种架构使得程序员可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序。

MVC架构和MCT架构

MVC模式

MVT模式

ORM(翻译官)

ORM,全称为对象关系映射(Object-Relational Mapping),是一种技术,用于将关系数据库中的数据映射到对象中,以便在面向对象编程环境中使用。它提供了一种方法,可以将数据库中的表、记录和字段映射到程序中的对象和属性。

Django命令

在windos命令行使用pip命令下载

复制代码
pip install django==版本号

创建一个空项目

复制代码
django-admin startproject 项目名

启动项目

复制代码
python manage.py runserver

创建子项目

复制代码
python manage.py startapp 子项目名

子项目需要注册到主项目中,在主项目下的settings.py文件中

两种添加方式,第一种省事
复制代码
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # 方式一
    # '项目名'
    # 方式二
    '项目名.apps.项目名Config'

]

创建ORM模型类

在子项目中的models.py文件中创建模型类

模型类必须继承model.Model

一个类就是一个数据表,一个对象就是一条数据(元组),一个属性(类属性)就是一个字段

复制代码
from django.db import models


# Create your models here.
class BookInfo(models.Model):
    name = models.CharField(max_length=10)


class PeopleInfo(models.Model):
    name = models.CharField(max_length=10)
    gender = models.BooleanField()
    book = models.ForeignKey(BookInfo, on_delete=models.CASCADE)

创建完模型类之后需要迁移模型(也就是创建表)

第一步生成迁移文件(根据models.py生成sql语句)

复制代码
python manage.py makemigrations

下图为生成的迁移文件

主要内容

复制代码
# Generated by Django 2.2.5 on 2024-02-05 01:32

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='BookInfo',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=10)),
            ],
        ),
        migrations.CreateModel(
            name='PeopleInfo',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=10)),
                ('gender', models.BooleanField()),
                ('book', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='book.BookInfo')),
            ],
        ),
    ]

第二部执行迁移(根据生成好的sql语句创建数据表)

复制代码
python manage.py migrate

创建的数据表,默认为sqllite3

可以更改默认的创建数据表格式,在setting.py文件中

站点管理

管理界面本地化

在setting.py文件中设置中文

创建管理员

复制代码
python manage.py createsuperuser

重置密码

复制代码
python manage.py changepassword 用户名

注册模型类

在admin.py中注册模型类

发布内容到数据库

定义视图函数

在view.py中定义对请求的响应动作

路由匹配

方法一:在urls.py中直接进行配置

方法二:在子项目里面进行创建一个urls.py配置

模板的基本使用

需要在setting.py中设置模板的路径

相关推荐
程序员杰哥5 分钟前
Chrome浏览器+Postman做接口测试
自动化测试·软件测试·python·测试工具·测试用例·接口测试·postman
ZCXZ12385296a7 分钟前
YOLO11-ASF-P2模型实现蚕桑业健康状态识别完整教程
python
gang_unerry11 分钟前
量子退火与机器学习(4): 大模型 1-bit 量子化中的 QEP 与 QQA 准量子退火技术
人工智能·python·机器学习·量子计算
青瓷程序设计22 分钟前
【交通标志识别系统】python+深度学习+算法模型+Resnet算法+人工智能+2026计算机毕设项目
人工智能·python·深度学习
啥都想学点37 分钟前
关于制作技术视频讲解的问卷调查
python
喵手37 分钟前
Python爬虫实战:博物馆官网的“展览预告/正在热展”栏目,抓取展览名称、精确展期、具体展厅位置以及票务/预约规则(附CSV导出)!
爬虫·python·爬虫实战·零基础python爬虫教学·博物馆信息采集·采集展览预告/正在热展等·采集数据csv导出
喵手38 分钟前
Python爬虫实战:电商实体消歧完整实战 - 从混乱店铺名到标准化知识库的工程化实现,一文带你搞定!
爬虫·python·算法·爬虫实战·零基础python爬虫教学·同名实体消除·从混乱店铺名到标准化知识库
aluluka1 小时前
Emacs折腾日记(三十六)——打造个人笔记系统
笔记·python·emacs
黎子越1 小时前
python相关练习
java·前端·python
小白学大数据1 小时前
实测数据:多进程、多线程、异步协程爬虫速度对比
开发语言·爬虫·python·php