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中设置模板的路径

相关推荐
A尘埃8 小时前
大模型应用python+Java后端+Vue前端的整合
java·前端·python
A尘埃8 小时前
LLM大模型评估攻略
开发语言·python
一晌小贪欢9 小时前
【Python办公】处理 CSV和Excel 文件操作指南
开发语言·python·excel·excel操作·python办公·csv操作
檀越剑指大厂10 小时前
【Python系列】fastapi和flask中的阻塞问题
python·flask·fastapi
YoungHong199211 小时前
【Python进阶】告别繁琐Debug!Loguru一键输出异常日志与变量值
python·debug·异常处理·日志·loguru·log·logger
AiXed11 小时前
PC微信协议之nid算法
python·网络协议·算法·微信
小李哥哥12 小时前
基于数据的人工智能建模流程及源码示例
python
APIshop12 小时前
实战解析:苏宁易购 item_search 按关键字搜索商品API接口
开发语言·chrome·python
蓝桉~MLGT12 小时前
Python学习历程——Python面向对象编程详解
开发语言·python·学习
larance12 小时前
Python 中的 *args 和 **kwargs
开发语言·python