Django 是一个高效、稳定、功能全面的 Python Web 框架,它已经成为了市面上最受欢迎的 Web 框架之一,广泛用于各种大中小型的 Web 应用程序开发。Django 的架构设计思想清晰,易于理解和使用,也便于实现多种 Web 应用程序的构建。
在这里,我们将详细讲解 Django 框架的组成结构、基本概念和文件功能,以及通过两个示例说明来让大家更好地理解 Django 框架的使用。
1. Django 框架的组成结构
Django 框架组成结构分为以下几个模块:
模型(Model)
模型是 Django 框架中用于操作数据库的组件。它可以定义一张数据库表格,每一个表格可能包含不同的字段。模型的定义存放在一个 Python 文件中。
视图(View)
视图是 Django 框架中用于处理 HTTP 请求并返回 HTTP 响应的组件。视图函数通常是在视图文件中实现的 Python 函数。
模板(Template)
模板是 Django 框架中用于展示后端处理的数据的组件。 这是一个类似于 HTML 的文本文件,里面包含了将被渲染的内容和一些代码逻辑。
URL 分发器(URL Dispatcher)
URL 分发器是 Django 框架中进行 URL 路由和控制的组件。Django 通过 URL 与前端进行交互, 实现对视图的调用和响应。
处理器(Middleware)
处理器是位于视图和 URL 分发器之间的一层。 它能够拦截整个请求和响应过程,可以用于检查请求、过滤响应,或者更改请求和响应的内容。
2. Django 框架的基本概念
Django 框架中有几个基本概念,理解这些概念对于 Django 开发至关重要。
APP 应用
在 Django 中,应用是指一组实现某种业务功能的模型、 视图和模板的集合。一般来说,一个项目能够包含多个应用。 Django 中的应用是工程的组成单元之一,它们可以独立运行,也可以和其他应用进行组合使用。
URL 路由
在 Django 中,URL 路由是指进行请求分发的过程,通过 URL 路由实现从用户发起的 HTTP 请求进入到相应的视图函数的调用,在 Django 中路由是通过 URLConf 进行配置的。
视图函数
在 Django 中,视图函数与 URL 路由密切相关,视图函数的作用是处理 HTTP 请求并返回 HTTP 响应。 在视图中可以进行查询数据库,编排模板等诸多操作。
数据库
Django 中内置了多种数据管理工具,无需自己编写 SQL 代码,即可轻松管理各种数据库。 Django 中支持 MySQL、 PostgreSQL 等主流数据库。
3. Django 框架中主要的文件和其功能
Django 框架中有很多重要的文件,以下是其中最常用的文件及其功能:
settings.py
Django 项目的重要配置文件。由于 Django 框架包含了非常多的功能,因此需要在项目中进行一些常规的配置,如数据库、静态文件、模板等。在这个文件里可以配置全局的 Django 项目设置。
urls.py
URLconf 文件中定义了所有的 URL 模式和与之相关的视图函数,该文件可以看作是一个视图和模板的映射表。在 Django 框架中,URLConf 的定义是按照 urlspatts (URL 模式)和对应的处理函数(视图)的形式进行的。
wsgi.py
当 Web 服务器(如 Apache 或 Nginx)向 Django 应用发送一个请求时,通过 wsgi.py 文件将请求传输到 Django 应用。 它是部署 Django 应用的关键。
manage.py
这是一个方便管理 Django 项目的命令行工具。可以通过 python manage.py
命令执行 Django 项目中的一些常用操作,如创建数据库、安装应用等。
4. 示例说明:创建一个 Django 项目和应用程序
创建项目
先创建一个名为 myproject 的 Django 项目:
django-admin startproject myproject
运行上述命令后,会在当前工作目录下创建一个名为 myproject 的文件夹,其中包含了一个名为 settings.py 的主配置文件,以及其他一些默认配置文件。
创建应用程序
接下来,我们来创建一个名为 bookstore 的应用程序:
cd myproject
python manage.py startapp bookstore
这个命令将会在 myproject 下创建一个名为 bookstore 的目录,其中包含了 bookstore 应用程序的模型、 视图和模板代码。
修改 settings.py 配置
在 myproject/settings.py 文件中将 bookstore 应用程序添加进 INSTALLED_APPS 列表:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'bookstore', # 将 bookstore 加入 INSTALLED_APPS
]
创建简单的视图
编辑 bookstore/views.py 文件,添加以下代码:
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello World!")
配置 URL
编辑 myproject/urls.py 文件,添加以下代码:
from django.urls import path
from bookstore.views import index
urlpatterns = [
path('', index),
]
运行 Django 服务器
通过以下命令运行 Django 服务器:
python manage.py runserver
访问 Django 网站
在浏览器中输入 http://127.0.0.1:8000/
,便可以看到我们的 Django 网站的首页了。
5. 示例说明:创建 Blog 应用
接下来创建一个名为 Blog 的应用。
创建应用
python manage.py startapp blog
配置 URL
在 blog 目录下新建 urls.py 文件,添加以下代码:
from django.urls import path
from blog.views import index
urlpatterns = [
path('', index),
]
创建模型
在 blog/models.py 文件中添加以下代码:
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
created_time = models.DateTimeField(auto_now_add=True)
author = models.CharField(max_length=50)
在数据库中创建表
python manage.py makemigrations blog # 让 Django 知道我们在模型中有一些变更
python manage.py migrate blog # 创建表到数据库
创建视图
在 blog/views.py 文件中添加以下代码:
from django.http import HttpResponse
from django.template import loader
from .models import Post
def index(request):
latest_post_list = Post.objects.order_by('-created_time')[:5]
template = loader.get_template('blog/index.html')
context = {
'latest_post_list': latest_post_list,
}
return HttpResponse(template.render(context, request))
创建模板
在 blog/templates/blog 目录下创建 index.html 文件, 添加以下代码:
{% if latest_post_list %}
<ul>
{% for post in latest_post_list %}
<li>{{ post.title }}</li>
{% endfor %}
</ul>
{% endif %}
修改 settings.py 配置
在 settings.py 文件中添加以下配置项:
TEMPLATES = [
{
# ...
'APP_DIRS': True,
# ...
},
]
敲击 python manage.py runserver
运行网站,访问 http://127.0.0.1:8000/blog/ 可以看到博客文章列表了。
以上是 Django 框架组成结构、基本概念与文件功能分析的完整攻略及其示例。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Django框架组成结构、基本概念与文件功能分析 - Python技术站