Django 学习教程- Django 入门案例

news2025/1/21 12:13:27

Django学习教程系列

Django学习教程-介绍与安装

前言

本教程是为 Django 5.0 编写的,它支持 Python 3.10 至以上。如果 Django 版本不匹配,可以参考教程 使用右下角的版本切换器来获取你的 Django 版本 ,或将 Django 更新到最新版本。如果您使用的是较旧的 Python 版本,请查看 我可以将哪个 Python 版本与 Django 一起使用? 以找到兼容的 Django 的版本。

在本教程中,我将引导您完成基本的django请求和响应的入门案例。

让我们开始吧!

创建项目

django-admin startproject mysite

注意:如果没有创建成功 mysite 项目,您需要避免使用 Python 或 Django 内置的包来命名项目,这会导致冲突。

让我们看看创建了什么:

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py
  • mysite/:外部根目录是项目的容器。
  • manage.py:一个命令行实用程序,可让您与之交互 Django 项目以各种方式进行。你可以在 django-admin 和 manage.py 中阅读所有细节。manage.py
  • mysite/mysite/: 它的名称是导入时需要使用的 Python 包名称 它里面的任何东西(例如)。mysite/mysite.urls
  •   mysite/__init__.py:一个空文件,告诉 Python 这个 目录应被视为 Python 包。如果你是 Python 初学者, 在官方 Python 文档中阅读有关包的更多信息。
  •   mysite/settings.py:此 Django 的设置/配置 项目。Django 设置将告诉你所有关于如何设置的信息 工作。
  •   mysite/urls.py:此 Django 项目的 URL 声明;一个 Django 驱动的站点的“目录”。您可以关于 URL 调度程序中的 URL。
  •   mysite/asgi.py:ASGI兼容Web服务器的入口点 为您的项目服务。有关详细信息,请参阅如何使用 ASGI 进行部署。
  •   mysite/wsgi.py:WSGI 兼容 Web 服务器的入口点 为您的项目服务。有关更多详细信息,请参阅如何使用 WSGI 进行部署。

 启动 mysite 项目

python manage.py runserver

您将在命令行上看到以下输出:

Performing system checks...

System check identified no issues (0 silenced).

You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
December 30, 2023 - 13:29:36
Django version 5.0, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

注意:You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.

这个提示暂时忽略,跟数据库相关,后面会结合数据库使用。

您已经启动了 Django 开发服务器,这是一个纯粹用 Python 编写的轻量级 Web 服务器。我们已将其包含在 Django 中,以便您可以快速开发内容,而无需处理配置生产服务器(例如 Apache),直到您准备好进行生产为止。

现在服务器已运行,请使用 Web 浏览器访问 http://127.0.0.1:8000/ 您会看到“恭喜!” 页面,火箭起飞。有效!

更改端口

默认情况下,该runserver命令在内部 IP 的端口 8000 上启动开发服务器。

如果要更改服务器的端口,请将其作为命令行参数传递。例如,此命令在端口 8080 上启动服务器:

python manage.py runserver 8080

如果要更改服务器的 IP,请将其与端口一起传递。例如,要监听所有可用的公共 IP(如果您正在运行 Vagrant 或想要在网络上的其他计算机上展示您的工作,这很有用),请使用:

python manage.py runserver 0.0.0.0:8000

web入门案例

现在您的环境(一个“项目”)已经设置完毕,您就可以开始工作了。

要创建您的应用程序,请确保您位于同一目录中manage.py 并输入以下命令:

python manage.py startapp polls

这将创建一个目录polls,其目录结构如下:

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

 写下你的第一个视图

打开该文件 polls/views.py 并将以下 Python 代码放入其中:

from django.http import HttpResponse


def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

这是 Django 中最简单的视图。要调用视图,我们需要将其映射到 URL - 为此我们需要一个 URLconf。

要在 polls 目录中创建 URLconf,请创建一个名为 urls.py. 您的应用程序目录现在应如下所示:

polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    urls.py
    views.py

在该polls/urls.py文件中包含以下代码:

from django.urls import path

from . import views

urlpatterns = [
    path("", views.index, name="index"),
]

下一步是将根 URLconf 指向polls.urls模块。在 mysite/urls.py中 包含以下代码(注意:是mysite/urls.py,不是polls/urls.py) 

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

urlpatterns = [
    path("polls/", include("polls.urls")),
    path("admin/", admin.site.urls),
]

该include()函数允许引用其他 URLconf。每当 Django 遇到 时include(),它都会截掉 URL 中与该点匹配的任何部分,并将剩余的字符串发送到包含的 URLconf 进行进一步处理。

其背后的想法include()是让即插即用的 URL 变得容易。由于民意调查位于其自己的 URLconf ( polls/urls.py) 中,因此可以将它们放置在“/polls/”下、“/fun_polls/”下、“/content/polls/”下或任何其他路径根下,并且应用程序仍将工作。

何时使用include()

include()当包含其他 URL 模式时应 始终使用。admin.site.urls是唯一的例外。

您现在已将index视图连接到 URLconf 中。使用以下命令验证它是否正常工作:

python manage.py runserver

在浏览器中访问http://localhost:8000/polls/,您应该会看到文本“ Hello, world.

当您熟悉基本的请求和响应流程后,请期待下一章Djiango集成数据库使用案例。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1347738.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Select工作原理

I/O多路复用是一种并发处理的机制,允许一个进程通过一种机制监视多个描述符,从而在有多个I/O操作需要处理时选择其中之一进行服务。select 函数是一种常见的实现 I/O 多路复用的系统调用,它允许一个进程同时监视多个文件描述符的可读性、可写…

Elasticsearch-8.11.1 (2+1)HA(高可用)集群部署

目录 一、环境描述 二、安装 ES 2.1 下载Elasticsearch 2.2 解压Elasticsearch 2.3 创建es服务账号/密码 2.3 修改服务器配置 2.4 配置节点 2.4.1 配置说明 2.4.2 配置高可用集群 2.4.2.1 maser节点服务配置 2.4.2.2 node1 节点服务配置 2.4.2.3 node2 节点服务配置…

HarmonyOS4.0系统性深入开发10卡片事件能力说明

卡片事件能力说明 ArkTS卡片中提供了postCardAction()接口用于卡片内部和提供方应用间的交互,当前支持router、message和call三种类型的事件,仅在卡片中可以调用。 接口定义:postCardAction(component: Object, action: Object): void 接口…

年度总结 | 回味2023不平凡的一年

目录 前言1. 平台成就2. 自我提升3. Bug连连4. 个人展望 前言 每年CSDN的总结都不能落下,回顾去年:年度总结 | 回味2022不平凡的一年,在回忆今年,展望下年 1. 平台成就 平台造就我(我也造就平台哈哈) 每…

基于 LangChain + GLM搭建知识本地库

一种利用 langchain 思想实现的基于本地知识库的问答应用,目标期望建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。 受GanymedeNil的项目document.ai和AlexZhangji创建的ChatGLM-6B Pull Request启发,建立了全流程可使用开源模…

UE4运用C++和框架开发坦克大战教程笔记(十三)(第40~42集)

UE4运用C和框架开发坦克大战教程笔记(十三)(第40~42集) 40. 多按键绑定41. 自动生成对象42. 资源模块数据结构测试自动生成对象按资源类型生成对象 40. 多按键绑定 上节课实现了按键绑定系统的 4 种基础绑定,这节课来…

探索 Vue 异步组件的世界:解锁高效开发的秘密(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

008、所有权

所有权可以说是Rust中最为独特的一个功能了。正是所有权概念和相关工具的引入,Rust才能够在没有垃圾回收机制的前提下保障内存安全。 因此,正确地了解所有权概念及其在Rust中的实现方式,对于所有Rust开发者来讲都是十分重要的。在本文中&…

原型链补充

1.什么是原型对象 函数的独有属性,他用prototype来表示,可以在函数的prototype上挂载一些公用的属性和方法,供实例化对象来访问。 2.__proto__属性 这个属性每一个对象都有,实例化对象就是通过这个属性,来访问原型对象上的属性和方法的。 3.三者之间的关系 1.在构造函数的原型…

Linux驱动学习—pinctl和gpio子系统

1、pinctl和gpio子系统&#xff08;一&#xff09; 1.1pinctrl 子系统主要工作内容 <1>获取设备树中 pin 信息&#xff0c;管理系统中所有的可以控制的 pin&#xff0c; 在系统初始化的时候&#xff0c; 枚举所有可以控制的 pin&#xff0c; 并标识这些 pin。 <2>…

Unity坦克大战开发全流程——结束场景——失败界面

结束场景——失败界面 在玩家类中重写死亡函数 在beginPanel中锁定鼠标

数据结构【线性表篇】(三)

数据结构【线性表篇】(三&#xff09; 文章目录 数据结构【线性表篇】(三&#xff09;前言为什么突然想学算法了&#xff1f;为什么选择码蹄集作为刷题软件&#xff1f; 目录一、双链表二、循环链表三、静态链表 结语 前言 为什么突然想学算法了&#xff1f; > 用较为“官方…

U4_3 语法分析-自底向上分析-LR0/LR1/SLR分析

文章目录 一、LR分析法1、概念2、流程3、LR分析器结构及分析表构造1&#xff09;结构2&#xff09;一些概念 二、LR(0)分析法1、流程2、分析动作1&#xff09;移近2&#xff09;归约(reduce) 3、总结1&#xff09;LR分析器2&#xff09;构造DFA3&#xff09;构造LR(0)的方法(三…

Redis(上)

1、redis Redis是一个完全开源免费的高性能&#xff08;NOSQL&#xff09;的key-value数据库。它遵守BSD协议&#xff0c;使用ANSI C语言编写&#xff0c;并支持网络和持久化。Redis拥有极高的性能&#xff0c;每秒可以进行11万次的读取操作和8.1万次的写入操作。它支持丰富的数…

nodejs+vue+微信小程序+python+PHP的医疗报销系统的设计与实现-计算机毕业设计推荐

接着进行系统的需求分析、功能设计、数据库设计&#xff0c;最后进行编码实现。医疗报销系统主要包括了前台和后台信息管理两个部分&#xff0c;前台实现信息浏览、报销申请、意见反馈、个人信息管理等&#xff0c;后台实现新闻资讯管理、报销审核、报销流程管理、系统信息管理…

12.26

key_it.c #include"key_it.h" void led_init() {// 设置GPIOE/GPIOF时钟使能RCC->MP_AHB4ENSETR | (0x3 << 4);// 设置PE10/PE8/PF10为输出模式GPIOE->MODER & (~(0x3 << 20));GPIOE->MODER | (0x1 << 20);GPIOE->MODER & (~…

WorkPlus为企业打造私有化部署IM解决方案

在移动数字化时代&#xff0c;企业面临着如何全面掌控业务和生态的挑战。企业微信、钉钉、飞书、Teams等应用虽然提供了部分解决方案&#xff0c;但无法满足企业的私有化部署需求。此时&#xff0c;WorkPlus作为安全专属的移动数字化平台&#xff0c;被誉为移动应用的“航空母舰…

docker里面不能使用vim的解决办法

docker里面不能使用vim的解决办法 目录 docker里面不能使用vim的解决办法 1.在使用时会出现 2.在使用这些都不能解决的时候考虑 3.测试是否可用 1.在使用时会出现 bash: vim: command not found 出现这种错误时首先考虑使用 apt-get update 然后在用 apt-get install …

12个Python开发者必知必会的魔术方法

更多Python学习内容&#xff1a;ipengtao.com Python中的魔术方法&#xff08;Magic Methods&#xff09;是一组特殊的方法&#xff0c;它们以双下划线开头和结尾&#xff0c;例如__init__和__str__。这些方法可以定义自定义类的行为&#xff0c;使对象可以与Python的内置功能&…

固定本机在局域网中的 IP 地址

说明&#xff1a;以将 IP 地址固定为 192.168.1.107 为例 Step1、打开终端&#xff0c;输入以下命令查看网络信息&#xff1a; ipconfig -all 记住子网掩码、默认网关、DNS 服务器&#xff08;首选和备用&#xff09;信息&#xff0c;后面要用&#xff1a; Step2、进入 “控制…