每天40分玩转Django:简介和环境搭建

ops/2024/12/18 15:22:13/

Django简介和环境搭建

一、课程概述

学习项目具体内容预计用时
Django概念Django框架介绍、MVC/MTV模式、Django特点60分钟
环境搭建Python安装、pip配置、Django安装、IDE选择45分钟
创建项目项目结构、基本配置、运行测试75分钟
实战练习创建个人博客项目框架60分钟

二、Django框架介绍

2.1 什么是Django?

Django是一个高级的Python Web框架,它鼓励快速开发和清晰、实用的设计。由经验丰富的开发人员构建,它解决了Web开发中的许多麻烦,因此你可以专注于编写应用程序,而无需重新发明轮子。最重要的是,它是免费和开源的。

2.2 Django的主要特点

  1. 快速开发:Django的设计目标之一就是帮助开发者快速从概念到完成应用
  2. 安全可靠:内置防御跨站请求伪造、SQL注入、跨站脚本等攻击手段
  3. 扩展性强:可以使用"应用"的概念将项目分割成多个应用
  4. 丰富的功能:包含ORM、Admin后台、Forms表单等常用功能
  5. 完善的文档:拥有完善的在线文档和开发社区

2.3 MVC与MTV模式

Django使用MTV模式,这是MVC的Django实现:

MVC模式MTV模式说明
ModelModel数据库表的设计和操作
ViewTemplate页面的设计和展示
ControllerView业务逻辑的处理

在这里插入图片描述

三、环境搭建

3.1 Python安装

  1. 访问Python官网下载Python 3.x版本(推荐3.8以上)
  2. 安装时勾选"Add Python to PATH"
  3. 验证安装:打开命令行输入
python --version

3.2 pip配置(Python包管理工具)

  1. pip通常随Python一起安装
  2. 验证pip安装:
pip --version
  1. 配置国内镜像源(可选,但推荐):
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

3.3 Django安装

pip install django

验证Django安装:

python">import django
print(django.get_version())

四、创建第一个Django项目

4.1 创建项目

django-admin startproject mysite

4.2 项目结构说明

mysite/├── manage.py           # 项目管理文件└── mysite/├── __init__.py     # 空文件,表明该目录是一个Python包├── settings.py     # 项目设置文件├── urls.py         # URL声明文件├── asgi.py        # ASGI兼容的Web服务器的入口└── wsgi.py        # WSGI兼容的Web服务器的入口

4.3 基本配置(settings.py)

python"># mysite/settings.py# 数据库配置
DATABASES = {'default': {'ENGINE': 'django.db.backends.sqlite3','NAME': BASE_DIR / 'db.sqlite3',}
}# 语言和时区设置
LANGUAGE_CODE = 'zh-hans'  # 设置语言为中文
TIME_ZONE = 'Asia/Shanghai'  # 设置时区为中国时区
USE_I18N = True
USE_L10N = True
USE_TZ = True# 静态文件设置
STATIC_URL = '/static/'

4.4 创建应用

python manage.py startapp blog

应用结构:

blog/├── __init__.py├── admin.py├── apps.py├── migrations/├── models.py├── tests.py└── views.py

4.5 注册应用

python"># mysite/settings.pyINSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','blog.apps.BlogConfig',  # 添加新创建的应用
]

五、实战练习:创建个人博客项目

5.1 创建视图(blog/views.py)

python">from django.http import HttpResponse
from django.shortcuts import renderdef index(request):return HttpResponse("欢迎访问我的博客!")def post_list(request):context = {'title': '博客文章列表','posts': [{'title': '第一篇博客','content': '这是我的第一篇博客内容...','date': '2024-01-01'},{'title': '第二篇博客','content': '这是我的第二篇博客内容...','date': '2024-01-02'}]}return render(request, 'blog/post_list.html', context)

5.2 创建URL配置(blog/urls.py)

python">from django.urls import path
from . import viewsapp_name = 'blog'urlpatterns = [path('', views.index, name='index'),path('posts/', views.post_list, name='post_list'),
]

5.3 主URL配置(mysite/urls.py)

python">from django.contrib import admin
from django.urls import path, includeurlpatterns = [path('admin/', admin.site.urls),path('blog/', include('blog.urls')),
]

5.4 创建模板

  1. 在blog应用目录下创建templates文件夹
  2. 在templates下创建blog文件夹
  3. 创建post_list.html模板:
<!-- blog/templates/blog/post_list.html -->
<!DOCTYPE html>
<html>
<head><title>{{ title }}</title>
</head>
<body><h1>{{ title }}</h1>{% for post in posts %}<article><h2>{{ post.title }}</h2><p>{{ post.content }}</p><p>发布日期:{{ post.date }}</p></article><hr>{% endfor %}
</body>
</html>

5.5 运行开发服务器

python manage.py runserver

访问以下URL测试:

  • http://127.0.0.1:8000/blog/
  • http://127.0.0.1:8000/blog/posts/

六、调试和开发工具

6.1 推荐的IDE

  1. PyCharm Professional(推荐):

    • 内置Django支持
    • 智能代码补全
    • 调试工具
    • 数据库工具
  2. Visual Studio Code + Python插件:

    • 轻量级
    • 免费开源
    • 丰富的插件生态

6.2 Django Debug Toolbar

安装Debug Toolbar:

pip install django-debug-toolbar

配置settings.py:

python">INSTALLED_APPS = [...'debug_toolbar',
]MIDDLEWARE = [...'debug_toolbar.middleware.DebugToolbarMiddleware',
]INTERNAL_IPS = ['127.0.0.1',
]

七、常见问题和解决方案

  1. 数据库迁移问题:
python manage.py makemigrations
python manage.py migrate
  1. 静态文件不显示:
python"># settings.py
STATIC_URL = '/static/'
STATICFILES_DIRS = [BASE_DIR / "static",
]
  1. 模板找不到:
    检查TEMPLATES设置:
python">TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [BASE_DIR / 'templates'],'APP_DIRS': True,...},
]

八、学习成果检验

完成以下任务来检验今天的学习效果:

  1. 创建一个新的Django项目
  2. 添加一个新的应用
  3. 创建一个简单的视图和模板
  4. 配置URL路由
  5. 运行项目并访问创建的页面

九、进阶任务

  1. 尝试使用Django的模板继承
  2. 添加静态文件(CSS、JavaScript)
  3. 实现一个简单的表单处理
  4. 配置Django Admin后台

记住:学习Django是一个循序渐进的过程,今天的内容是为后续的学习打下基础。确保完全理解今天的每个概念,这将有助于更好地理解接下来的高级主题。

建议:

  1. 动手实践每个示例代码
  2. 记录遇到的问题和解决方案
  3. 尝试修改示例代码,观察结果变化
  4. 查看Django官方文档深入学习

怎么样今天的内容还满意吗?再次感谢朋友们的观看,关注GZH:凡人的AI工具箱,回复666,送您价值199的AI大礼包。最后,祝您早日实现财务自由,还请给个赞,谢谢!


http://www.ppmy.cn/ops/142946.html

相关文章

期末复习-计算机网络应用题

目录 1 、简述具有五层协议体系结构的各层的主要功能&#xff1f; 2 、简述计算机网络协议分层能带来哪些好处&#xff1f; 3 、奈氏准则与香农公式在数据通信中的意义是什么&#xff1f; 4 、为什么局域网采用广播通信方式而广域网不采用呢&#xff1f; 5 、 以太网交换机…

Python TXT文件按条件批量删除行工具

Python TXT文本文件批量删除行工具 1.简介&#xff1a; 一个由Python编写的可根据TXT文件按条件批量删除行工具&#xff0c;资源及文件已打包成exe文件&#xff0c;源码也已经分享给大家&#xff0c;喜欢的话可以点个关注哦&#xff01; 功能&#xff1a; 批量删除行含关键字…

如何在NGINX中实现基于IP的访问控制(IP黑白名单)?

大家好&#xff0c;我是锋哥。今天分享关于【如何在NGINX中实现基于IP的访问控制&#xff08;IP黑白名单&#xff09;&#xff1f;】面试题。希望对大家有帮助&#xff1b; 如何在NGINX中实现基于IP的访问控制&#xff08;IP黑白名单&#xff09;&#xff1f; 1000道 互联网大…

智慧养老系统源码医院陪诊代办买药就医陪护上门护理小程序

市场前景 随着中国社会老龄化的不断加剧&#xff0c;老年人口比例的增加使得他们对医疗和陪护服务的需求日益突出。老年人在就医过程中往往需要更多的帮助和陪伴&#xff0c;而智慧养老陪诊护理系统能够为他们提供便捷、高效的就医辅助服务&#xff0c;满足他们的实际需求。此…

MacOs使用Wine 安装UaExpert与UaExpert的使用

要在 macOS 上使用 Wine 安装和运行 UaExpert&#xff0c;可以按照以下步骤操作&#xff1a; 安装 Wine 在 macOS 上&#xff0c;你可以通过 Homebrew 来安装 Wine。如果你还没有安装 Homebrew&#xff0c;可以先安装 Homebrew&#xff0c;然后使用它来安装 Wine。 bash /bin…

批处理命令的语法与功能

目录 案例一 echo命令语法及应用 案例二 命令语法及应用 案例三 goto命令语法及应用 案例四 pause命令语法及应用 案例五 call命令语法及应用 案例六 start命令语法及应用 案例七 rem命令语法及应用 案例八 if命令语法及应用 案例九 set命令的语法及应用 案例十 setl…

【Redis】Redis 缓存更新策略

1. 更新策略三种方式 缓存更新是redis为了节约内存而设计出来的一个东西&#xff0c;主要是因为内存数据宝贵&#xff0c;当我们向redis插入太多数据&#xff0c;此时就可能会导致缓存中的数据过多&#xff0c;所以redis会对部分数据进行更新&#xff0c;或者把他叫为淘汰更合…

JS设计模式之访问者模式

前言 访问者模式&#xff08;Visitor Pattern&#xff09;是一种 行为设计模式&#xff0c;它允许在不改变对象结构的情况下&#xff0c;定义新的操作。 这种模式通过将操作封装在访问者对象中&#xff0c;使得可以在不修改被访问对象的情况下&#xff0c;增加新的功能。 本…