Django5个人笔记

1.初识django

首先Django 是一个开源、高级的 Python Web 框架
全栈框架 :提供从数据库到用户界面的完整解决方案,内置 ORM、模板引擎、表单处理、认证系统等。

让人们专注于编写应⽤程序,⽽⽆需重新发明轮⼦。

1.1 安装并跑起来我们第一个django项目

1,安装python

Django是基于Python的框架,⾸先需要安装Python。

官⽹:https://www.python.org/
2.安装包管理工具

setuptools是Python的包管理⼯具,⽤于安装和管理Python包。

官⽹:https://pypi.org/project/setuptools/

bach 复制代码
# 安装
setuptools
 pip install setuptools 
# 升级
python -m pip install --upgrade setuptools
 # 验证安装
pip show setuptools

3 安装Django框架

python 复制代码
# 安装Django 5
 python -m pip install Django==5.2.5
# 验证安装
django-admin --version

1.1.2开发第⼀个Django框架应⽤程序

通过命令⾏构建Django应⽤程序

因为pycharm只要专业版才可以通过图像界面才能构建django程序应用,而我懒得破解觉得使用window powershell进行构建

首先打开我们的powershell

bash 复制代码
 # 创建项⽬⽬录
mkdir django_project
 cd django_project
 # 创建虚拟环境
python -m venv venv
 # 激活虚拟环境
# Windows
 venv\Scripts\activate
 # macOS/Linux
 source venv/bin/activate
 # 安装Django
 pip install Django==5.2.5
 # 创建Django项⽬
django-admin startproject mysite
 # 进⼊项⽬⽬录
cd mysite
 # 运⾏开发服务器
python manage.py runserver


相对于⽤命令⽅式,PyCharm创建的项⽬,多了templates⽬录(⽤来放html模版⽂件),以及
settings.py,多了 BASE_DIR / 'templates'


出现这个就显示成功了

1.1.3 文件结构解读

我们先来看看文件结构

然后我们详细讲解一下各个模块是干啥的

我们先来看看ai的解释

1.1.3 添加简单的Django应⽤程序代码

1 创建⼀个简单的Django应⽤

2 修改myapp/views.py 添加视图⻚⾯:

3 创建myapp/urls.py 配置URL路由

4 修改mysite/urls.py 配置URL路由

:

启动Django5 服务器

bash 复制代码
 # 运⾏开发服务器
python manage.py runserver

1.2 MTV架构

Django遵循MVC(模型-视图-控制器)设计模式,但在Django中,它通常被称为MTV(模型-模板-视图)架

构:
模型(Model): 处理数据和数据库逻辑
模板(Template): 处理表现层(HTML输出)
视图(View): 处理业务逻辑,连接模型和模板

模板接收⽤户输⼊后交由视图去处理,视图负责连接模型进⾏数据操作,并将操作结果传递给模板进⾏

展示,以上就是Django框架所设计的MTV模式的基本⼯作原理。

简单来说:Model 管"数据",Template 管"样子",View 管"怎么把数据塞进样子并返回"。

我们简单写个示例理解一下

c 复制代码
myproject/
 ├ myapp/
 │  ├ models.py
 │  ├ views.py
 │  └ urls.py
 └ myproject/urls.py     # 主路由,2 行代码

models.py(Model)

python 复制代码
from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=100)

views.py(View + Template 渲染)

python 复制代码
from django.shortcuts import render
from .models import Book

def book_list(request):
    books = Book.objects.all()                    # 取数据
    return render(request, 'book_list.html',      # 选模板
                  {'books': books})               # 传上下文

book_list.html(Template)

python 复制代码
<ul>
{% for book in books %}
    <li>{{ book.title }}</li>
{% endfor %}
</ul>

路由

myapp/urls.py

python 复制代码
from django.urls import path
from . import views
urlpatterns = [path('books/', views.book_list)]

myproject/urls.py

python 复制代码
from django.urls import include, path
urlpatterns = [path('', include('myapp.urls'))]

运行

python 复制代码
python manage.py makemigrations
python manage.py migrate
python manage.py shell -c "from myapp.models import Book; Book.objects.create(title='Django 入门')"
python manage.py runserver
相关推荐
林炳然25 分钟前
将软件从C盘迁移至D盘:释放系统盘空间的终极指南
笔记
Source.Liu34 分钟前
mdBook 开源笔记
笔记·rust·markdown
_dindong1 小时前
Linux系统编程:线程概念
linux·运维·笔记·学习
Olrookie1 小时前
若依前后端分离版学习笔记(十六)——scoped、路由跳转
前端·笔记
Olrookie1 小时前
若依前后端分离版学习笔记(十七)——ruoyi开发规范&流程,请求流程,依赖引入,组件注册&通信
前端·笔记
上园村蜻蜓队长2 小时前
FPGA自学笔记--VIVADO FIFO IP核控制和使用
笔记·fpga开发
小二·2 小时前
前端笔记:HTML output标签介绍及用法
javascript·笔记·html5
杰尼君2 小时前
STM32CubeMX笔记(11)-- AD模块使用
笔记·stm32·嵌入式硬件
_JinHao2 小时前
Cesium Viewer对象详解——Cesium基础笔记(快速入门)
前端·javascript·笔记·3d·webgl
sz-lcw9 小时前
MySQL知识笔记
笔记·mysql·adb