PYTHON从入门到实践-18Django从零开始构建Web应用
Django是一个高级Python Web框架,它鼓励快速开发和干净、实用的设计。本文将带你快速入门Django,通过实际代码示例讲解Django的基本概念和核心功能。
一、Django安装与项目创建
首先,我们需要安装Django:
pip install django
安装完成后,可以通过以下命令创建一个新的Django项目:
django-admin startproject DjangoProject cd DjangoProject
二、创建应用
Django项目由多个应用组成。让我们创建两个应用:
python manage.py startapp book python manage.py startapp movie
三、URL路由与视图基础
1. 基本URL配置
在DjangoProject/urls.py
中,我们可以配置基本的URL路由:
from django.contrib import admin from django.urls import path from django.shortcuts import HttpResponsedef index(request):return HttpResponse("欢迎来到我的课堂")urlpatterns = [path('admin/', admin.site.urls),path("index", index, name="index"), ]
这段代码定义了两个路由:
/admin/
:Django自带的管理后台/index
:指向我们自定义的index
视图
2. 应用专属URL配置
更好的做法是为每个应用创建独立的URL配置。首先在book/views.py
中创建视图:
from django.shortcuts import HttpResponsedef book_detail_query_string(request):book_id = request.GET.get('id')return HttpResponse(f"您查找的图书id是:{book_id}")
然后在项目的主URL配置中包含它:
from django.contrib import admin from django.urls import path from book import views as book_viewsurlpatterns = [path('admin/', admin.site.urls),path("book", book_views.book_detail_query_string), ]
四、两种URL参数传递方式
Django支持两种主要的URL参数传递方式:
1. 查询字符串方式
# 视图函数 def book_detail_query_string(request):book_id = request.GET.get('id')return HttpResponse(f"您通过字符赋值查找的图书id是:{book_id}")# URL配置 path("book", book_views.book_detail_query_string)
访问示例:/book?id=123
2. 路径参数方式
# 视图函数 def book_detail_path(request, book_id):return HttpResponse(f"您通过路径查找的图书id是:{book_id}")# URL配置 path("book/<int:book_id>", book_views.book_detail_path)
访问示例:/book/123
五、path函数详解
path()
函数是Django URL配置的核心,其基本语法为:
path(route, view, kwargs=None, name=None)
参数说明:
route
:匹配URL的字符串,可以包含转换器(如<int:book_id>
)view
:当匹配到URL时调用的视图函数kwargs
:传递给视图函数的额外关键字参数name
:为URL命名,方便在模板中引用
常用路径转换器:
str
:匹配任何非空字符串(默认)int
:匹配零或任何正整数slug
:匹配ASCII字母、数字、连字符和下划线组成的字符串uuid
:匹配格式化的UUIDpath
:匹配任何非空字符串,包括路径分隔符'/'
六、最佳实践建议
项目与应用分离:将不同功能模块拆分到不同应用中
URL命名:为每个URL模式命名,便于后续维护
视图函数组织:将相关视图函数组织在同一个模块中
URL参数验证:在视图函数中对参数进行验证
结语
本文介绍了Django的基础知识,包括安装、项目创建、应用创建、URL路由配置和参数传递。这些是Django开发的基石,掌握它们将为后续学习模型、模板、表单等高级特性打下坚实基础。
在后续文章中,我们将深入探讨Django的模型系统、模板引擎和管理后台等高级功能。