Django5.0入门基本使用

news2024/11/24 18:45:07

文章目录

  • 一、安装
    • 1、安装django环境
    • 2、创建项目
    • 3、启动服务器
    • 4、创建第一个应用
      • (1)创建应用
      • (2)编写视图
      • (3)映射url
      • (4)测试
  • 二、核心概念
    • 1、django.urls 函数
      • (1)path()、re_path()、include()
    • 2、数据库配置
    • 3、使用html模板
    • 4、表单处理
    • 5、自动化测试
    • 6、静态文件
  • 三、拓展
    • 1、request方法
    • 1、请求处理
  • 参考资料

一、安装

1、安装django环境

官方中文文档:https://docs.djangoproject.com/zh-hans/5.0/intro/

# 安装
pip install Django -i https://pypi.tuna.tsinghua.edu.cn/simple


# 验证 5.0.6
python -m django --version

2、创建项目

# 创建mysite 项目,可以随便命名
django-admin startproject mysite

我们可以看到,创建的目录结构:

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


这些目录和文件的用处是:

最外层的 mysite/ 根目录只是你项目的容器, 根目录名称对 Django 没有影响,你可以将它重命名为任何你喜欢的名称。

manage.py: 一个让你用各种方式管理 Django 项目的命令行工具。你可以阅读 django-admin 和 manage.py 获取所有 manage.py 的细节。

里面一层的 mysite/ 目录包含你的项目,它是一个纯 Python 包。它的名字就是当你引用它内部任何东西时需要用到的 Python 包名。 (比如 mysite.urls).

mysite/__init__.py:一个空文件,告诉 Python 这个目录应该被认为是一个 Python 包。如果你是 Python 初学者,阅读官方文档中的 更多关于包的知识。

mysite/settings.py:Django 项目的配置文件。如果你想知道这个文件是如何工作的,请查看 Django 配置 了解细节。

mysite/urls.py:Django 项目的 URL 声明,就像你网站的“目录”。阅读 URL调度器 文档来获取更多关于 URL 的内容。

mysite/asgi.py:作为你的项目的运行在 ASGI 兼容的 Web 服务器上的入口。阅读 如何使用 ASGI 来部署 了解更多细节。

mysite/wsgi.py:作为你的项目的运行在 WSGI 兼容的Web服务器上的入口。阅读 如何使用 WSGI 进行部署 了解更多细节。

3、启动服务器

# 在manage.py同级目录下执行
python manage.py runserver 0.0.0.0:8000

在这里插入图片描述
访问http://127.0.0.1:8000/就会出现初始页面:
在这里插入图片描述

4、创建第一个应用

(1)创建应用

在manage.py 所在的目录下,然后运行这行命令来创建一个应用:

# 创建一个应用
python manage.py startapp polls

在这里插入图片描述

(2)编写视图

打开 polls/views.py,把下面这些 Python 代码输入进去:

from django.http import HttpResponse

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

(3)映射url

在 polls 目录中创建一个 URL 配置,请创建一个名为 urls.py 的文件。

from django.urls import path

from . import views

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

在根URLconf 文件中指定我们创建的 polls.urls 模块。在 mysite/urls.py 文件的 urlpatterns 列表里插入一个 include(), 如下:

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

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

函数 include() 允许引用其它 URLconfs。每当 Django 遇到 include() 时,它会截断与此项匹配的 URL 的部分,并将剩余的字符串发送到 URLconf 以供进一步处理。

(4)测试

启动项目,访问http://127.0.0.1:8000/polls/

二、核心概念

1、django.urls 函数

(1)path()、re_path()、include()

https://docs.djangoproject.com/zh-hans/5.0/ref/urls/

URL调度器:
https://docs.djangoproject.com/zh-hans/5.0/topics/http/urls/

2、数据库配置

官方文档:https://docs.djangoproject.com/zh-hans/5.0/intro/tutorial02/

3、使用html模板

官方文档:https://docs.djangoproject.com/zh-hans/5.0/intro/tutorial03/

4、表单处理

官方文档:https://docs.djangoproject.com/zh-hans/5.0/intro/tutorial04/

5、自动化测试

官方文档:https://docs.djangoproject.com/zh-hans/5.0/intro/tutorial05/

6、静态文件

官方文档:https://docs.djangoproject.com/zh-hans/5.0/intro/tutorial06/

三、拓展

1、request方法

Django中的请求包含了很多方法,简单认识下:
在这里插入图片描述

1、请求处理

post请求需要关闭csrf:
在这里插入图片描述

from django.urls import path

from . import views

urlpatterns = [
    path("", views.index, name="index"),
    path("get1/<int:id>", views.get1, name="get1"),
    path("postFormData", views.postFormData, name="postFormData"),
    path("postJson", views.postJson, name="postJson"),

]
from django.shortcuts import render
from django.http import HttpResponse
from django.http import JsonResponse
import json
# 需要安装 pip install jsonpath -i https://pypi.douban.com/simple
import jsonpath

def index(request):
    return HttpResponse("Hello, world.")


# localhost:8000/polls/get1/123?name=张三
def get1(request, id):
    # get请求
    data = request.GET
    # get请求参数
    print(data)
    # url拼接的参数
    print(data.get('name'))
    # 获取path的参数
    print(id)
    return HttpResponse("get1")

# post请求 formData  需要关闭csrf
def postFormData(request):
    
    data = request.POST
    # 请求参数
    print(data)
    # url拼接的参数
    print(data.get('name'))
    return HttpResponse("postFormData")

# post请求处理json
def postJson(request):
    data = json.loads(request.body)
    # {'name': '张三'}
    print(data)
    print(jsonpath.jsonpath(data, '$.name')[0])

    return JsonResponse({'success': '访问成功'}, status=200)

参考资料

https://blog.csdn.net/qq_40558166/category_9337345.html

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

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

相关文章

本周日直播:基于动力学软件CarSim 2024的车辆性能及控制算法开发在线直播课

CarSim2024 为乘用车和轻型卡车的性能模拟提供了最准确、最详细、最高效的方法。经过汽车工程师二十年的实际验证,CarSim 已成为分析汽车动力学、开发主动控制器、计算汽车性能功能和设计下一代主动安全系统的首选工具。 直播版本:2024.0 CarSim 2024 的优势: 全球有 110 …

化学式的分子量计算——字符转数字

【题目描述】 给出一种物质的分子式&#xff08;不带括号&#xff09;&#xff0c;求分子量。本题中的分子式只包含4种原子&#xff0c;分别为C, H, O, N&#xff0c;原子量分别为12.01, 1.008, 16.00, 14.01&#xff08;单位&#xff1a;g/mol&#xff09;。例如&#xff0c;…

实验名称:TCP 连接管理

目录 前言 TCP报文段格式 TCP建立连接 TCP释放连接 实验目的 实验原理 实验步骤 1. 启动WireShark&#xff0c;设置抓包状态 2. 访问指定服务器 &#xff0c;通过Wireshark抓取通信数据报文 3. 分析TCP连接建立的三次握手和连接释放的四次握手过程 原始数据记录 实验…

ubuntu下使用docker安装es和kibana以及ik分词器还有logstash

友情提醒&#xff1a;es和kibana的版本最好一致 0.准备工作 mkdir -p /home/elasticsearch/data/ mkdir -p /home/elasticsearch/config/ mkdir -p /home/elasticsearch/plugins/ chmod -R 777 /home/elasticsearch 编写配置文件 echo http.host: 0.0.0.0 http.cors.ena…

上传到 PyPI

将软件包上传到 PyPI&#xff08;Python Package Index&#xff09;&#xff0c;您需要遵循以下步骤&#xff1a; 准备软件包&#xff1a;确保您的软件包满足以下要求&#xff1a; 包含一个 setup.py 文件&#xff0c;用于描述软件包的元数据和依赖项。包含软件包的源代码和必要…

【Mac】Adobe2022~2024软件安装前必读

前言 安装2022-2024 adobe 系列软件之前&#xff0c;一定要先安装好Adobe Creative Cloud&#xff08;ACC&#xff09;&#xff0c;没有这个软件安装启动都会报错&#xff01;因为从Adobe 2022版本开始重写了Creative Cloud模块&#xff0c;必须联网才能使用。 温馨提示 安装…

【408真题】2009-10

“接”是针对题目进行必要的分析&#xff0c;比较简略&#xff1b; “化”是对题目中所涉及到的知识点进行详细解释&#xff1b; “发”是对此题型的解题套路总结&#xff0c;并结合历年真题或者典型例题进行运用。 涉及到的知识全部来源于王道各科教材&#xff08;2025版&…

数字水印 | Python 基于离散小波变换 DWT 的图像水印嵌入(上)

&#x1f34d;原文&#xff1a; 基于 dwt (离散小波变换) 实现彩色图像水印嵌入部分_1.0 &#x1f34d;写在前面&#xff1a; 本文在原文的基础上进行了代码补全。 正文 本文的内容主要为&#xff1a;水印图像经过 A r n o l d \mathsf{Arnold} Arnold 置乱算法后&#xff0…

Django模型进阶

接上一节 4.查询数据 在Django中&#xff0c;正向查询&#xff08;Forward Query&#xff09;和反向查询&#xff08;Reverse Query&#xff09;是ORM&#xff08;Object-Relational Mapping&#xff0c;对象关系映射&#xff09;中用于处理数据库表间关系时的两种查询方式&a…

代码随想录 打卡day23,24,25

1 二叉搜索树的最小绝对差 注意审题&#xff0c;题目当值说到是一个二叉搜索树&#xff0c;因此我们只需进行中序遍历即可&#xff0c;然后得到一个有序数组之后进行编辑&#xff0c;统计出来最小差。 class solution{ private:vector<int> vec;void traversal(TreeNode…

【经典文献】光声立体成像的对极几何

文献标题&#xff1a;《Epipolar Geometry of Opti-Acoustic Stereo Imaging》作者列表&#xff1a;Shahriar Negahdaripour发表期刊&#xff1a;IEEE Transactions on Pattern Analysis and Machine Intelligence发表年份&#xff1a;2007DOI链接&#xff1a;10.1109/TPAMI.20…

电流反馈型运放设计要点总结

目录 前言 基本架构 CFB和VFB运算放大器的差异 总结&#xff1a;电流反馈(CFB)与电压反馈(VFB) 前言 最近一个项目用到THS3491&#xff0c;发生了震荡&#xff0c;这是一个电流型反馈运放&#xff0c;借此机会&#xff0c;温故一下&#xff0c;电流运放的相关设计知识 基本架…

小米手机删除照片视频后没有释放手机存储空间

问题描述&#xff1a;小米手机11青春版&#xff0c;删除照片视频后&#xff0c;手机的存储空间没有变化&#xff1b; 问题原因&#xff1a;因为并没有真正的删除&#xff1b; 解决方案&#xff1a;手机 > 设置 > 我的设备 > 存储空间 > 应用公共文件(在最底部) &…

java多线程 线程交替执行(同步)的各种实现方案

目录 java多线程 线程交替执行&#xff08;同步&#xff09;的各种实现方案需求 指定具体执行顺序实现一&#xff1a;wait_notify机制 Thread标志位实现二&#xff1a;lock_condition机制 Thread标志位实现三&#xff1a;semaphore信号量 不指定具体执行顺序&#xff0c;只交…

深入学习指针5,与数组和指针相关的笔试题1(C语言)

前言 Hello,亲爱的小伙伴们&#xff0c;我又来了&#xff0c;&#xff0c;今天呢我们一起来学习一下C语言关于数组和指针的部分经典题目。如果觉得不错的话不要忘了点赞&#xff0c;收藏、关注&#xff0c;你的支持就是我更新的最大动力&#xff01;&#xff01; 好&#xff0…

什么是页分裂、页合并?

数据组织方式 在InnoDB存储引擎中&#xff0c;表数据都是根据主键顺序组织存放的&#xff0c;这种存储方式的表称为索引组织表(index organized table IOT)。 行数据&#xff0c;都是存储在聚集索引的叶子节点上的。而我们之前也讲解过InnoDB的逻辑结构图&#xff1a; 在I…

华为设备display查看命令

display version //查看版本信息 display current-configuration //查看配置详情 display this //查看当前视图有效配置 display ip routing-table //查看路由表 display ip routing-table 192.168.3.1 //查看去往3.1的路由 display ip interface brief //查看接口下ip信息 dis…

sudo apt-get update失败,怎么解决

本篇文章主要是从我的解决方案出发&#xff0c;因为个体差异性&#xff0c;对大家的帮助可能有限&#xff0c;不过大家也可以作为参考之一。 输入sudo apt-get update&#xff0c;结果一直显示&#xff1a; W: 无法下载 http://mirrors.aliyun.com/ubuntu/dists/jammy-securi…

利用一段代码轻松绕过PHP授权系统

第一步&#xff1a;首先你需要改名全局文件 比如说全局文件 common.php&#xff0c;那么 你将他改为core.php 第二步&#xff1a;创建文件 创建一个文件&#xff0c;和改名前的全局文件名称一样&#xff0c;然后把以下代码复制进去就OK了 代码如下&#xff1a; <?php…

20240513,常用算法(查找,排序,拷贝替换)

做着一些和考试无关的事情 常用查找算法——续 FIND_IF find_if //按条件查找元素&#xff0c;返回迭代器POS / END()find_if(beg,end,_Fred) _Fred函数或谓词&#xff08;返回BOOL类型的仿函数&#xff09; #include<iostream> #include<string> #includ…