Django框架丨从零开始的Django入门学习

发布时间:2026/10/20 20:36:03

Django框架丨从零开始的Django入门学习 Django 是一个用于构建 Web 应用程序的高级 Python Web 框架Django是一个高度模块化的框架使用 Django只要很少的代码Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容并进一步开发出全功能的 Web 服务。每个 Django App 的组织结构符合 Django 的 MTV 法则——Model模型 Template模板 View视图文章内容将从安装开始对Django每一个模块的操作进行简单的讲解1. 安装Django------------想必大家肯定都安装好python了如果没有的话网络上很多教程可以参考安装好python后可以直接在命令行安装Django pip install django安装完成后你可以通过运行以下命令验证 Django 是否成功安装 python -m django --version或通过import进行检查2. 创建项目--------### 2.1 命令行新建项目通过终端进入到需要创建项目的指定目录通过Django的django-admin.py命令新建工程 cd Django django-admin startproject Hellodjango文件组成 django_news ├── django_news // 项目全局文件目录 │ ├──init.py │ ├── asgi.py.py // ASGI 兼容的 Web 服务器的入口(异步接受网络请求) │ ├── settings.py // 全局配置包括链接数据库等操作 │ ├── urls.py // 全局路由URL 声明 │ └── wsgi.py // WSGI 兼容的 Web 服务器的入口同步接受网络请求 └── manage.py // 项目管理脚本### 2.2启动服务器runserver创建好后先尝试启动服务器看是否成功 # 不定义端口号默认为8000 python manage.py runserver python manage.py runserver 8888 # 0.0.0.0 让其它电脑可连接到开发服务器 python manage.py runserver 0.0.0.0:8888上面三句都可以启动服务见到以下欢迎页面就是安装创建成功了Django 开发服务器可以保持开启修改代码会自动重新加载不需要重新启动服务器非常方便。3 新建应用startapp----------------新建一个App——相当于功能的划分一个 Django 应用由多个子应用组成一般称之为 App。 python manage.py startapp new01新建app的文件夹结构如下new01 // news 应用目录 ├── migrations // 数据库迁移变更记录 │ └──init.py ├──init.py // 初始化模块 ├── admin.py // 默认自带的后台管理配置 ├── apps.py // 应用配置 ├── models.py // 数据模型、数据库操作等 ├── tests.py // 单元测试 └── views.py // 视图url里的函数在这里找### 3.1 加入配置文件在Hellodjango/settings.py中找到 INSTALLED_APPS加入新建app的config### 3.2 第一个页面#### 3.2.1 视图view打开new01/views.py写一个简单的index相当于写了一个页面 from django.shortcuts import render from django.http import HttpResponse # Create your views here. def index(request): return HttpResponse(‘Hello Django!’) #### 3.2.2 接入路由下一步是让路由系统能够访问到刚才写好的视图函数也就是将页面加入到网页中在Hellodjango/urls.py中修改Django自带的urlpatterns通常接收以下三个参数 route必须即实际的访问路由空字符串等于 /即空路由展示为首页 view必须该路由将要访问的view视图 name可选该路由的名称方便后续在模板中使用 from new01 import views urlpatterns [ # path(‘admin/’, admin.site.urls), path(‘index/’, views.index) ]不过当然一个系统的页面会有很多网页编辑好了之后将路由加到urls.py的urlpatterns中就可以了可以看到urls.py文件中有一行path(‘admin/’, admin.site.urls)取消注释访问http://127.0.0.1:8888/admin已经可以看到后台系统的登录页面但此时还没有连接数据库其余内容到后面讲述4.数据库的时候再进行操作### 3.3 加入网页templatesrender在django项目目录下新建一个templates文件夹文件夹下面放入html文件把templates加入到路径中settings.py的TEMPLATES因为默认情况下会放到app下的templates里面写一个简单的网页web01.html meta charset“UTF-8”TitleThis is a web将网页写入到views.py中在这里我们使用render函数第一个参数为request第二个参数是文件名第三个参数可以不要是把文件中用{{}}标起来的内容替换的功能。 def web01(request): return render(request, “web01.html”)再添加到urls.py from new01 import views urlpatterns [ # path(‘admin/’, admin.site.urls), path(‘index/’, views.index), path(‘web/’, views.web01) ]此时输入网址可以看到网页接入成功其他的样式等可以按照CSS 、html的语法进行添加修改web01.html文件此时输入端口号可以看到对应的两个页面都在4.数据库-----Django 的 MTV我们已经讲了 TTemplate和 VView到了最后一个 MModel了。数据模型是 Django 入门最大的难点这一步之后便能真正上手 Django 开发。下面我们先介绍一下 Django 的数据模型设计。Django 在数据模型方面的特点* 由于高度解耦的设计可轻松切换各种关系型数据库默认的 SQLite可选 MySQL、PostgreSQL、Oracle 等等* 强大的 ORMObject Relation Mapping对象关系映射模块使得用 Python 操作数据库非常轻松免去了使用 SQL 的麻烦* 优秀的数据库迁移机制Migration修改数据模式Schema比较方便能够适应不断变化的功能需求### 4.1 开发流程一般数据模型开发流程如下1. 用 Django 定义一个新的数据模型在new01/models.py中2. 用makemigrations命令创建迁移文件存储在子应用的 migrations 目录里面3. 用migrate命令执行迁移 如后续发现定义有问题或不完善可以更新数据模型再重新进行23操作完成数据迁移### 4.2 实现一个简单的模型#### 4.2.1 创建数据模型在new01/models.py中定义数据模型以及你需要的字段可以先随便定义两个简单的字段进行尝试代码如下 from django.db import models # Create your models here. class Post(models.Model): # 根据模型自动值数据库中创建一个对应的表此表包括title, name两个字段 title models.CharField(max_length50) name models.CharField(max_length50) defstr(self): return self.title 定义好后再命令行执行如下命令创建迁移文件 python manage.py makemigrations通过输出可以看到成功创建了 new01/migrations/0001_initial.py 迁移脚本再进行下一步数据库迁移 python manage.py migrate数据库迁移完成后我们就可以创建用于登录后台管理的超级用户 python manage.py createsuperuser按照提示步骤输入用户名和密码创建成功就行#### 4.2.2 后台管理配置此时再输入前面提到的 http://127.0.0.1:8888/admin后台管理页面就可以通过刚刚创建的超级用户登录查看了但进入页面可以看到没有我们创建的应用和模型这是因为没有实现后台管理的接口配置在文件new01/admin.py中接口配置如下 from django.contrib import admin from .models import Post # Register your models here. admin.site.register(Post) 再刷新页面可以看到应用new01和模型Posts点击 Posts 一栏的 Add 按钮随便添加几条数据也可以看看修改、添加、删除等功能。#### 4.2.3 视图与数据连接新建一个网页html文件这里用先前用于测试的web01.html在views.py中绑定好页面与数据 from django.shortcuts import render from .models import Post def show_name(request): context {‘name_list’: Post.objects.all()} return render(request, ‘web01.html’, contextcontext)中html文件中写好渲染数据的语法 meta charset“UTF-8”Title{% if name_list %}{% for elem in name_list %}{{ elem.title }}{{ elem.name }}{% endfor %}{% else %}no data{% endif %} 最后不要忘记中urls.py中添加新设置好的视图 from django.urls import path from new01 import views urlpatterns [ path(‘name/’, views.show_name), ]最后访问定义好的路由 http://127.0.0.1:8888/name就可以看到刚才在后台管理系统中添加的数据了
延伸阅读

更多相关文章

2026/10/19 4:46:01

基于YOLOv8与PyQt5的自行车违规停放检测系统实战指南

简介:目标检测是计算机视觉的核心任务之一,旨在从图像或视频中定位并识别出感兴趣的目标物体。其原理通常基于深度学习模型,通过卷积神经网络提取图像特征,并预测目标的边界框和类别。这项技术的价值在于能够自动化地完成以往需要…

2026/10/19 11:37:42

显卡与集成显卡的本质区别:从硬件架构到应用场景的全面解析

1. 从“图形处理”到“计算核心”:显卡的现代定义 如果你最近在琢磨怎么给自己的电脑升级,或者被AI绘画、大语言模型搞得心痒痒,那么“显卡”这个词一定高频出现在你的视野里。但你可能也发现了,网上讨论的“显卡”,和…

2026/10/19 13:55:29

物理AI技术拆解:从仿真到现实的关键路径与开发者实践

物理 AI 这两年被频繁提起,从英伟达创始人黄仁勋在公开演讲中反复强调,到各大车企、机器人公司、工业自动化厂商纷纷布局,很多人的第一反应是“又一个概念风口来了”。但如果你认真看过当前的技术进展和产业落地节奏,会发现物理 A…

2026/10/20 20:32:53

MinGW for Win64 入门:轻量级 C++ 编译环境搭建与实战

简介:MinGW for Win64 是面向 Windows 64 位平台的 GCC 编译器工具链资源,适合在本地学习 C、希望摆脱大型 IDE 依赖的开发者与编程初学者。它提供命令行编译环境,可快速完成代码编译与调试,帮助理解从源码到可执行文件的完整过程…

2026/10/20 20:32:53

AI Agent底层基石:单次模型请求的三种方式与选型实战

1. 为什么单次模型请求值得单独拎出来聊很多人一上来就搞多轮对话、工具调用、记忆管理,结果连一次干净的模型请求都发不明白。我见过太多项目,Agent 框架搭得花里胡哨,最后排查问题发现是底层单次请求的参数传错了,或者流式和非流…

2026/10/20 20:32:53

C#纯.NET工控仪表盘控件库:圆表直表旋钮开关指示灯全包

简介:这份C#仪表控件示例面向工控、组态及仿真界面开发者,尤其适合需要在WinForm应用中快速搭建可视化仪表界面的初中级程序员。资源以ActiveX控件技术为核心,演示了圆表、直表(测量标尺)、旋钮、开关和指示灯等常见仪…

2026/10/20 20:32:53

PyTorch转ONNX再到MNN:端侧图像模型部署全流程与踩坑实录

前阵子帮人将一个图像分类模型塞进移动端跑,模型在服务器上精度明明没问题,一换推理框架就开始出各种幺蛾子。Pytorch模型转成ONNX和MNN这件事,听起来就是两行命令的事,实际推进时要把图的导出机制、算子兼容、精度对齐全走一遍&a…

2026/10/20 20:32:53

Unity Lua开发环境搭建:EmmyLua配置、热重载与调试实战

2. 为什么我在Unity里选了Lua,以及EmmyLua到底解决了什么先说结论:如果你的Unity项目已经决定用Lua,或者正在纠结要不要上Lua,那“Unity Lua EmmyLua”这套组合,基本是目前我实测下来最舒服的写码方式。这篇文章不搞…

2026/10/20 20:27:50

底层代码重构速通:从技术债到可维护性的工程实践

干程序员这行,最怕的不是需求一天三变,而是自己每天干的事和三年前一模一样——代码是越写越熟练了,水平却原地踏步。今天想聊的底层代码重构,不是让你把整个系统推倒重来,而是把那些每天逼着你加班修 bug、改一段代码…

2026/10/19 18:06:35

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/20 1:05:37

单片机C运行时从启动到多任务:中断安全与共享资源冲突

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:05:37

GCC编译四步详解:预处理、编译、汇编、链接实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:05:37

FIW线是什么?FEP注塑线与普通氟塑料线的区别及应用指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑