python之django框架入门,看完你就会

目录

1.创建Django项目

 2.创建Django应用

 3.定义ORM模型

4.创建并执行数据库迁移

5.定义视图函数

6.定义URL路由

7.编写模板


Django是一个基于Python的Web框架,它旨在提供开发人员一个高效而且富有灵活性的工具集。它包含了一套完整的组件,涵盖了从路由、视图、模板、表单到ORM等多个方面,能够让开发人员快速搭建一套高质量的Web应用。Django也是Python社区最主流的Web框架之一,许多知名网站如Instagram、Pinterest和Mozilla等都基于Django构建。

在本篇文章中,我们将为大家介绍如何搭建一个简单的Django应用,并为您提供详细的代码示例。本文假设读者已经掌握了Python基础及Web开发相关知识,并安装了Django(本文中使用的版本为3.2.5)。

1.创建Django项目

首先,我们需要在本地创建一个新的Django项目。此处我们创建一个名为“myproject”的项目。

运行以下命令:

django-admin startproject myproject

创建好项目之后,我们会得到以下目录结构:

myproject/
    manage.py
    myproject/
        __init__.py
        asgi.py
        settings.py
        urls.py
        wsgi.py

其中:

  • manage.py:Django项目的管理工具,通过它可以进行一些常用的操作,如启动服务、创建数据库等。
  • myproject/:项目的主目录,也是Python包的声明。其中包含了一些基础文件,如项目配置文件(settings.py)、URL定义文件(urls.py)等。

 2.创建Django应用

在项目中,我们可以创建多个Django应用。每个Django应用都是独立的模块,包含自己的URL映射、视图、模板等组件。我们创建一个名为“blog”的应用,来演示Django应用的创建过程。

在项目根目录下运行以下命令:

python manage.py startapp blog

创建好应用之后,我们会得到以下目录结构:

blog/
    __init__.py
    admin.py
    apps.py
    models.py
    tests.py
    views.py
    migrations/
        __init__.py

其中:

  • init.py:空文件,让Python将此目录视为一个Python包。
  • admin.py:Django后台管理的相关配置。
  • apps.py:应用的一些元数据信息,如应用名、版本号等。
  • models.py:ORM模型定义文件,用于与数据库交互。
  • tests.py:Django测试相关的文件,可用于自动化测试。
  • views.py:视图文件,定义了所有的视图函数。

 3.定义ORM模型

在Django中,ORM模型映射数据库中的表,我们可以通过ORM模型来操作对应表中的数据。Django中的ORM模型以类形式表现,一个模型类代表着一个表。在blog应用中,我们定义一个名为Post的模型,用于存储博客文章数据。

在blog/models.py中添加以下代码:

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=50)
    body = models.TextField()
    pub_date = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

在上述代码中,我们继承了Django中的Model类,这使得此类变成了一个ORM模型。其中title、body、pub_date分别代表着博客文章的标题、正文和发布时间,类型分别为CharField、TextField和DateTimeField。str()方法定义了在调用print函数时显示的字符串格式。

4.创建并执行数据库迁移

Django中的ORM模型一般需要基于其定义的结构生成数据库表结构。为此,Django提供了一个叫做迁移(migrations)的机制,用来生成、修改和管理数据库表结构。通过运行以下命令,我们可以生成Post模型的迁移文件:

python manage.py makemigrations blog

接着,我们可以通过运行以下命令,在数据库中创建Post模型对应的表:

python manage.py migrate

5.定义视图函数

视图函数是Django应用的核心组件之一,用于处理HTTP请求,并返回HTTP响应。在我们的博客应用中,我们定义一个主页视图和一个文章详情视图。在blog/views.py中添加以下代码:

from django.shortcuts import render, get_object_or_404
from . models import Post

def home(request):
    posts = Post.objects.all().order_by('-pub_date')
    return render(request, 'blog/home.html', {'posts':posts})

def post_detail(request, post_id):
    post = get_object_or_404(Post, pk=post_id)
    return render(request, 'blog/post_detail.html', {'post':post})

在上述代码中,我们使用了Django提供的render函数,来渲染指定模板,并将指定的数据传递给模板。

注意,我们使用了get_object_or_404函数,这个函数会在查询结果为空时返回404错误页面,而不是抛出异常。

6.定义URL路由

Django将URL路由映射为视图函数,我们需要在项目的urls.py中定义URL路由规则。在本例中,我们将博客应用的主页映射到“/”路径,并将文章详情页面映射到“/post/<post_id>”路径。

在myproject/urls.py中添加以下代码:

from django.contrib import admin
from django.urls import path, include
from blog import views

urlpatterns = [
    path('', views.home, name='home'),
    path('post/<int:post_id>', views.post_detail, name='post_detail'),
    path('admin/', admin.site.urls),
]

在上述代码中,我们使用了path函数来定义URL路由规则。注意,我们将其命名为home和post_detail。

7.编写模板

最后一步是编写模板,Django使用模板来生成最终的HTML页面。在blog应用中,我们创建了两个模板,分别表示博客首页和文章详情页面。新建blog/templates/blog/home.html文件,添加以下代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Welcome to Blog</title>
</head>
<body>
    <h1>Blog</h1>
    <ul>
      {% for post in posts %}
        <li><a href="{% url 'post_detail' post.id %}">{{ post.title }}</a></li>
      {% endfor %}
    </ul>
</body>
</html>

在上述代码中,我们使用Django模板系统中的for标签遍历查询到的所有文章,并通过url模板标签定义文章详情页面的URL地址。

接着,我们新建blog/templates/blog/post_detail.html文件,添加以下代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{{ post.title }}</title>
</head>
<body>
    <h1>{{ post.title }}</h1>
    <p>{{ post.body }}</p>
    <p>{{ post.pub_date }}</p>
</body>
</html>

在上述代码中,我们使用Django模板系统中的变量标签来显示文章的标题、正文和发布时间。

至此,我们已经完成了一个简单的Django应用的搭建,可以在浏览器中访问了。运行以下命令启动Django开发服务器:

python manage.py runserver

然后在浏览器中访问http://localhost:8000即可浏览博客首页。点击任意一篇文章的标题,即可前往文章详情页面。

本文仅涵盖了Django的入门部分,Django框架拥有更加强大和丰富的功能,如表单、图片上传、用户认证等等,读者可以参考Django官方文档深入了解。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

然然学长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值