首页 > 其他分享 >9.3 Django框架

9.3 Django框架

时间:2023-06-09 09:11:35浏览次数:45  
标签:框架 创建 py Django blog 应用 post 9.3

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 的数据模型,它具有 titlecontent 和 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

file

标签:框架,创建,py,Django,blog,应用,post,9.3
From: https://www.cnblogs.com/yaoqian/p/17468190.html

相关文章

  • laravel框架接口
    下面是增删改查的接口,在使用过程中按自己需求对代码进行更改控制器代码<?phpnamespaceApp\Http\Controllers;useApp\Models\Fang;useIlluminate\Http\Request;useNette\Schema\ValidationException;classFangControllerextendsController{//房源添加......
  • 云原生时代Go最受欢迎Web开源框架Gin原理与实战
    @目录概述定义特点概览导图使用快速入门HTTP方法使用参数获取参数绑定自定义日志输出自定义中间件路由组HTML渲染设置和获取CookieXML、YAML、ProtoBuf渲染使用BasicAuth中间件静态文件和BootStrap使用Session写入日志文件原理核心执行流程核心数据结构概述定义Gin官网地址......
  • Java高级技术、Junit单元测试框架入门
          ......
  • 转载:Spring 框架的设计理念与设计模式分析
    Spring框架的设计理念与设计模式分析<!--LEADSPACE_BODY_END--><!--SUMMARY_BEGIN-->Spring作为现在最优秀的框架之一,已被广泛的使用,并且有很多对其分析的文章。本文将从另外一个视角试图剖析出Spring框架的作者设计Spring框架的骨骼架构的设计理念,有那几个核心组件?为......
  • django中的Case,When查询
    这一篇笔记将介绍条件表达式,就是如何在model的使用中根据不同的条件筛选数据返回。这个操作类似于数据库中ifelifelse的逻辑。1、model和数据准备这篇笔记我们用到的model是Client,放在blog/models.py下classClient(models.Model):REGULAR='R'GOLD=......
  • linux框架学习(备份)
    1.现在主要有两大主流系统:unix系统/window系统2.3.unix系统(不开源,适用于小型机)4.|-linux(开源,免费,适用于pcserver)5.|-Android6.|-AppaleOS7.因为linux开源,很多公司都是可以获得linux源代码(文件系统,cpu,内存,IO,网络资源的管理和调集)8.9.linux简介:10.......
  • springMVC集成缓存框架Ehcache
    概述Ehcache算是当前比较流行的缓存框架,使用缓存可以极大的缓解服务器和数据库的压力,提高访问效率,提高服务器的并发能力。接下来我们看怎么把缓存在springmvc种使用起来。详细Ehcache算是当前比较流行的缓存框架,使用缓存可以极大的缓解服务器和数据库的压力,提高访问......
  • Google colab 更改Tensorflow深度学习框架版本
    Googlecolab默认导入的tensorflow版本是2.0想,想更改tensorflow版本为1.x则需要加入%tensorflow_version1.ximporttensorflowastftf.__version__之后要进行colab的重启,即可完成版本改装,由于colab没有terminal,所以只能这么修改。欢迎登陆官网(附https://tensorflow.google.cn/)......
  • 深度学习项目之mnist手写数字识别实战(TensorFlow框架)
    mnist手写数字识别是所有深度学习开发者的必经之路,mnist数据集的图片十分简单,是二值化图像,像素个数为28x28。所以对于所有研究深度学习的开发者来说学会mnist数据集的模型十分有必要。以此为实例进行计算机视觉如何进行识别出图片中的数据。MNIST手写数字数据集来自美国国家标准与......
  • php框架--php框架的连贯查询实现原理
    如果你是一名使用过多种框架的php程序员,你一定见过这样的查询语句:$result=$mysqlDb->limit(’0,10′)->order(‘iddesc’)->findall();上面的查询语句,连续使用->操作符进行操作,并最终返回一个查询结果,那么这是如何实现的呢。 我们来简单分析一下:->操作符用来访问对象,上面的语句......