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
相关推荐
lingggggaaaa37 分钟前
小迪安全v2023学习笔记(一百四十五讲)—— Webshell篇&魔改冰蝎&打乱特征指纹&新增加密协议&过后门查杀&过流量识别
笔记·学习·安全·魔改冰蝎·免杀对抗·免杀技术
Digitally1 小时前
如何将iPhone上的笔记传输到电脑
笔记·电脑·iphone
lkbhua莱克瓦242 小时前
Java基础——常用算法4
java·数据结构·笔记·算法·github·排序算法·快速排序
学渣676563 小时前
11111
笔记
MeowKnight9583 小时前
【DIY】PCB练习记录2——51单片机核心板
笔记
tjsoft10 小时前
网站如何被百度收录之探索笔记
笔记
QT 小鲜肉12 小时前
【个人成长笔记】在 Linux 系统下撰写老化测试脚本以实现自动压测效果(亲测有效)
linux·开发语言·笔记·单片机·压力测试
MeowKnight95812 小时前
【Qt】Qt实践记录2——TCP通信服务器和客户端demo
笔记·qt
The_Second_Coming13 小时前
ELK 学习笔记
笔记·学习·elk
wdfk_prog14 小时前
[Linux]学习笔记系列 -- [kernel][time]timekeeping
linux·笔记·学习