9.3 Django框架
Django 是一个非常流行的 Python Web 开发框架,它是完整且强大的,适用于构建大型 Web 应用。在这一章节中,我们将详细介绍 Django 的基本概念、组件和用法。为了便于理解,我们将使用实例来展示如何使用 Django 构建一个简单的 Web 应用。
9.3.1 安装和创建 Django 项目
首先,使用 pip 安装 Django:
pip install django
接下来,使用 django-admin 命令创建一个新的 Django 项目:
django-admin startproject myproject
这将创建一个名为 myproject 的目录,其中包含 Django 项目的初始文件和目录。进入 myproject 目录:
cd myproject
9.3.2 Django 项目结构
Django 项目由一个或多个应用组成。每个应用代表一个特定的功能,例如博客、论坛、商店等。为了展示如何创建和使用 Django 应用,我们将创建一个简单的博客应用。
首先,使用 startapp 命令创建一个名为 blog 的应用:
python manage.py startapp blog
这将创建一个名为 blog 的目录,其中包含应用的初始文件和目录。以下是一个简要的目录结构说明:
myproject/:项目根目录。manage.py:一个用于管理项目的命令行工具。myproject/:项目的配置目录。__init__.py:一个空的 Python 文件,用于将目录标记为 Python 包。asgi.py:ASGI 入口文件,用于部署项目。settings.py:项目的配置文件。urls.py:项目的 URL 配置文件。wsgi.py:WSGI 入口文件,用于部署项目。
blog/:应用目录。__init__.py:同上。admin.py:应用的 Django Admin 配置文件。apps.py:应用的配置文件。migrations/:应用的数据库迁移目录。models.py:应用的数据模型文件。tests.py:应用的测试文件。views.py:应用的视图文件。
9.3.3 数据模型
在 Django 中,数据模型用于定义应用的数据结构。为了创建一个简单的博客数据模型,编辑 blog/models.py,添加以下代码:
from django.db import models
from django.utils import timezone
class Post(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
pub_date = models.DateTimeField(default=timezone.now)
def __str__(self):
return self.title
我们定义了一个名为 Post 的数据模型,它具有 title、content 和 pub_date 三个字段。__str__ 方法用于在 Django Admin 界面中显示模型的友好名称。
接下来,将新创建的应用添加到项目的 settings.py 文件中的 INSTALLED_APPS 列表中:
INSTALLED_APPS = [
# ...
'blog',
]
然后,使用 makemigrations 和 migrate 命令创建并应用数据库迁移:
python manage.py makemigrations
python manage.py migrate
这将创建一个名为 db.sqlite3 的 SQLite 数据库文件,其中包含应用的数据表。
9.3.4 Django Admin
Django 提供了一个强大的后台管理界面,用于管理数据模型。首先,创建一个管理员用户:
python manage.py createsuperuser
接下来,注册 Post 模型以在 Django Admin 中使用。编辑 blog/admin.py,添加以下代码:
from django.contribimport admin
from .models import Post
admin.site.register(Post)
现在,启动开发服务器:
python manage.py runserver
在浏览器中访问 http://127.0.0.1:8000/admin/,使用先前创建的管理员用户登录。你可以在 Django Admin 中管理 Post 数据模型。
9.3.5 视图和模板
视图用于处理 Web 请求并返回响应。为了创建一个显示博客文章列表的视图,编辑 blog/views.py,添加以下代码:
from django.shortcuts import render
from .models import Post
def post_list(request):
posts = Post.objects.order_by('-pub_date')
return render(request, 'blog/post_list.html', {'posts': posts})
我们定义了一个名为 post_list 的视图,它从数据库中获取所有的 Post 对象并按发布日期降序排列。视图使用 render 函数将 posts 变量传递给一个名为 blog/post_list.html 的模板。
接下来,创建模板文件。在 blog 目录下创建一个名为 templates 的目录,并在其中创建一个名为 blog 的子目录。然后,在 blog/templates/blog 目录下创建一个名为 post_list.html 的文件,添加以下代码:
{% for post in posts %}
<h2>{{ post.title }}</h2>
<p>{{ post.pub_date }}</p>
<p>{{ post.content }}</p>
{% endfor %}
此模板使用 Django 的模板语言在页面上显示每篇博客文章的标题、发布日期和内容。
9.3.6 URL 配置
最后,我们需要配置 URL 以将请求映射到视图。首先,在 blog 目录下创建一个名为 urls.py 的文件,添加以下代码:
from django.urls import path
from . import views
urlpatterns = [
path('', views.post_list, name='post_list'),
]
这将项目的根 URL(/)映射到 post_list 视图。接下来,将新创建的应用的 URL 配置包含到项目的 urls.py 文件中:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('blog.urls')),
]
这告诉 Django 在处理 URL 时要包含 blog 应用的 URL 配置。
现在,重新启动开发服务器:
python manage.py runserver
在浏览器中访问 http://127.0.0.1:8000/,你应该能看到博客文章列表。
这仅仅是 Django 框架的简要介绍。它还有许多其他功能和组件,例如表单、用户认证、缓存等。要了解更多关于 Django 的信息,请访问其官方文档:https://docs.djangoproject.com/
推荐阅读:
https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA
https://mp.weixin.qq.com/s/an83QZOWXHqll3SGPYTL5g

9.3 Django框架的更多相关文章
- MVC其实很简单(Django框架)
Django框架MVC其实很简单 让我们来研究一个简单的例子,通过该实例,你可以分辨出,通过Web框架来实现的功能与之前的方式有何不同. 下面就是通过使用Django来完成以上功能的例子: 首先,我们 ...
- Django框架-目录文件简介
Rhel6.5 Django1.10 Python3.5 Django框架-目录文件简介 1.介绍Django Django:一个可以使Web开发工作愉快并且高效的Web开发框架. 使用Django, ...
- Django框架学习
两个月前学习的Django框架,写了个简易婚恋调查网站,代码就懒得全贴了,有两张图记录下
- django框架的models
在django的框架设计中采用了mtv模型,即Model,template,viewer Model相对于传统的三层或者mvc框架来说就相当对数据处理层,它主要负责与数据的交互,在使用django框架 ...
- Windows上python开发--2安装django框架
Windows上python开发--2安装django框架 分类: 服务器后台开发2014-05-17 21:22 2310人阅读 评论(2) 收藏 举报 python django 上一篇文章中讲了 ...
- MySQL在Django框架下的基本操作(MySQL在Linux下配置)
[原]本文根据实际操作主要介绍了Django框架下MySQL的一些常用操作,核心内容如下: ------------------------------------------------------ ...
- django框架介绍
主要内容 1. Django框架发展 2. Django架构,MTV模式 3. 开发流程 4. 开发实例——Poll python下各种框架 一 ...
- Django学习(二) Django框架简单搭建
为了快速学习Python进行Web的开发,所以我不准备从Python的基础学起,直接从Django框架入手,边学框架边学Python的基础知识. 下面就开始Django的快速开发之旅吧. 关于Djan ...
- Django - Django框架 简单介绍
Django框架 简单介绍 本文地址: http://blog.csdn.net/caroline_wendy/article/details/29172271 1. 介绍 Django是一个开放源码 ...
- Django框架全面讲解
Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. ...
随机推荐
- VUE基本写法
VUE基本结构 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...
- 联邦学习FATE框架安装搭建
联邦学习 FATE (Federated AI Technology Enabler) 是微众银行AI部门发起的开源项目,为联邦学习生态系统提供了可靠的安全计算框架.FATE项目使用多方安全计算 (M ...
- 异步注解@Async使用及其部分调优
对于spring异步注解@Async的使用: 对于异步方法调用,从Spring3开始提供了@Async注解,该注解可以被标注在方法上,以便异步地调用该方法.调用者将在调用时立即返回,方法的实际执行将提 ...
- Semantic Kernel 入门系列:🔥Kernel 内核和🧂Skills 技能
理解了LLM的作用之后,如何才能构造出与LLM相结合的应用程序呢? 首先我们需要把LLM AI的能力和原生代码的能力区分开来,在Semantic Kernel(以下简称SK),LLM的能力称为 sem ...
- 无法加载 DLL“xxxx.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。
有一台服务器在执行接口的时候遇到了这样一个问题: 其他服务器上都没有这个问题,IIS部署好的项目目录的bin文件夹下是有这个dll的,但却提示无法加载,在网上找了好多帖子,终于发现了问题. 首先用De ...
- 《花雕学AI》17:关注提示工程—本世纪最重要的技能可能就是与AI人工智能对话
本文目录与主要结构 引言:介绍提示工程的概念和背景,说明为什么它是本世纪最重要的技能之一. 正文: 一.提示工程的基本原理和方法:介绍什么是提示.如何设计和优化提示.如何使用提示与语言模型进行交互. ...
- 从ReentrantLock角度解析AQS
是它,是它,就是它,并发包的基石: 一.概述 闲来不卷,随便聊一点. 一般情况下,大家系统中至少也是JDK8了,那想必对于JDK5加入的一系列功能并不陌生吧.那时候重点加入了java.util.con ...
- django restframework的简单使用
django restframework的简单使用 1.快速上手 配置: (pip install djangorestframework==3.12.4) # settings.py INSTALL ...
- 基于QtAV的简易播放器(开源)
这个开源代码,是我利用QtAV源码,提取其中一部分代码,进行整合到我自己项目中,做的一个小型播放器测试,至于怎么安装一些环境以及QtAV源码编译在我以前写的一篇博客中可以看到(Qt第三方库QtAV-- ...
- async/await中的promise返回错误reject
https://blog.csdn.net/qq_42543244/article/details/123423894 最近在学 node ,之前对 async/await 和 promise 略懂, ...