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

这篇具有很好参考价值的文章主要介绍了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官方文档深入了解。文章来源地址https://www.toymoban.com/news/detail-709330.html

到了这里,关于python之django框架入门,看完你就会的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 手机扫描怎么做成文档?看完你就学会操作了

    相信很多职场人在办公的时候,经常会遇到大量的文件需要处理,其中一部分可能是纸质版的文件。但为了方便进行编辑,大家需要可以借助一些扫描软件对纸质版文件进行扫描,但是还有一部分小伙伴可能还不知道应该怎么进行操作。 今天就给大家带来三种较为简单的方法

    2024年02月08日
    浏览(35)
  • 月薪6000在中国什么水平?看完你就不焦虑了

    今天刷到一个很扎心的问题:你对自己现在的收入满意吗? 多数人都是不假思索地反问:“怎么会满意……” 都说挣钱够用就行,谁又真正满意过。 镜头前的主播抱怨忙,却偷偷年收百万,00后副业月入10万,连知根知底的发小,也突然月入过万。 而你拼命不比谁少, 跑进

    2023年04月22日
    浏览(29)
  • ai绘画图片美女怎么画?看完你就知道了

    大家在刚开始接触文生图的AI绘画的时候,是不是会因为在输入描述词时不知道应该如何描述,而导致生成的图片都比较简单或者混乱,不符合自己的预期。 其实,我刚接触AI绘图也是这样的,不过经过我的探索,我用AI做的图越来越漂亮了,给大家欣赏一下。 那么大家想知

    2024年02月14日
    浏览(31)
  • 无线路由器为什么需要重启 看完你就知道

    无线路由器已经成为每个家庭中不可或缺的网络设备。使用WiFi网络,无论是上网刷微博,还是在线追剧,亦或是进行在线游戏,经常卡顿的现象是最让人受不了的。有时候WiFi连接不佳,拍两下路由器是没有效果的。我们会重启无线路由器,重启后明显会感觉的网络变得流畅

    2024年02月05日
    浏览(37)
  • 【Unity】Time.deltaTime有什么用?看完你就明白

    大多数刚开始使用 Unity 的人(包括我),都会对 Time.deltaTime 感到迷惑。 看完本文,你就会明白 Time.deltaTime的定义及作用。 根据定义, Time.deltaTime是每一帧之间的时间间隔 (以秒为单位)。 这有助于我们使游戏与帧数无关,也就是说,无论 fps 是多少,游戏都将以相同的速

    2024年02月16日
    浏览(32)
  • 记录--组件阅后即焚?挂载即卸载!看完你就理解了

    上家公司有个需求是批量导出学生的二维码,我一想这简单啊,不就是先批量获取学生数据,然后根据 QRcode 生成二维码,然后在用 html2canvas 导出成图片嘛。 由于公司工具库有现成的生成压缩包方法,我只需要获得对应的图片 blob 就可以了,非常的easy啊。 思路没啥问题,但

    2024年02月05日
    浏览(27)
  • 电脑技巧:电脑关机、休眠、睡眠之间如何选择,看完你就懂了

    目录 一、关机、休眠、睡眠的区别? 1.关机 2.休眠   休眠的优点 休眠的缺点 3.睡眠   睡眠的优点 睡眠的缺点 二、什么时候关机/休眠/睡眠? 什么时候需要关机?  什么情况下使用休眠模式? 什么情况下使用睡眠模式? 三、终极建议 电脑技巧:电脑关机、休眠、睡眠之

    2024年01月15日
    浏览(36)
  • 网上宣传的0月租流量卡是骗局吗?看完你就知道了!

    大家一定要清楚一件事,目前三大运营商并没有推出0月租流量卡,正规号卡都是有月租的,每月按时扣费。 而网上所谓的0月租流量卡其实都是“物联卡”,又被 称为“纯流量卡”。 说到物联卡,除了是0月租外,还有一个明显的特点,就是功能单一,没有手机号不能注册,

    2024年02月13日
    浏览(29)
  • AI绘画怎么操作?看完这篇你就会了

    人工智能的快速发展正在为各个领域带来革命性的变化,而艺术创作也不例外。一键AI绘画软件的出现,使得艺术家们能够借助智能助手的力量,以更加创新的方式进行艺术创作。这种软件不仅简化了创作过程,还为艺术家们提供了新的灵感和创意。那你们知道免费一键AI绘画

    2024年02月13日
    浏览(32)
  • 阿里二面:adb 连接 Android 手机的两种方式,看完你就懂了...

    随着现在移动端技术的突飞猛进,导致现在市场上,APP 应用数不胜数,那对于测试工程师而言,对于 APP 的测试,那基本就是一个必修课了。 今天,我就来给大家介绍一下,adb 连接 Android 手机的两种方式 先使用 USB 线,连接 PC 和手机 通过 PC 给手机安装 adb 驱动,下载好安

    2024年03月22日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包