当前位置: 首页 > news >正文

Python Django 详解(基础)

文章目录

  • 1 概述
    • 1.1 安装 django
    • 1.2 创建 django 项目
    • 1.3 创建 app
  • 2 启动 Django
    • 2.1 settings.py:注册 app
    • 2.2 view.py:URL和视图对应
    • 2.3 启动 Django
    • 2.4 访问
  • 3 快速上手
    • 3.1 templates:html 模板
    • 3.2 static:静态文件
    • 3.3 模板语法
    • 3.4 请求和响应
    • 3.5 表单

1 概述

1.1 安装 django

> pip install django

1.2 创建 django 项目

  • [File] - [New Project...] - [Django] - 设置 Location 和 解释器 - [create]

固定,不用动的文件:
    asgi.py:接收网络请求(异步)
    wsgi.py:接收网络请求(同步)

重要,需要经常操作的文件:
    urls.py:URL和函数的对应关系
    settings.py:项目配置

在这里插入图片描述

1.3 创建 app

  • 命令窗口执行命令:python manage.py startapp app01(其中 app01 为自定义项目名)

固定,不用动的文件:
    admin.py:后台管理
    apps.py:app启动类
    migrations:数据库变更记录
    test.py:单元测试

重要,经常操作的文件:
    models.py:对数据库操作
    views.py:函数(对应上述 1.2 Django 项目中的 urls.py 文件)

在这里插入图片描述

2 启动 Django

2.1 settings.py:注册 app

在这里插入图片描述

2.2 view.py:URL和视图对应

在这里插入图片描述

2.3 启动 Django

在这里插入图片描述

> # 指定IP地址和端口
> python manage.py runserver 127.0.0.1:8080

2.4 访问

在这里插入图片描述

3 快速上手

3.1 templates:html 模板

在这里插入图片描述
在这里插入图片描述

3.2 static:静态文件

在这里插入图片描述
在这里插入图片描述

3.3 模板语法

在这里插入图片描述

views.py:

from django.shortcuts import render, HttpResponse# Create your views here.
# 入参 request 是必选项
def index(request):return HttpResponse("Hello World!")def user_list(request):# 对应 settings.py 中的 'DIRS': [os.path.join(BASE_DIR, 'templates')]# 若 settings.py 中设为 'DIRS': [] 则表示 app 目录下的 templatesname = "张三"roles = ["超级管理员", "管理员", "用户"]user_info = {"name": "张三", "salary": 10000, "role": "超级管理员"}data_list = [{"name": "张三", "salary": 10000, "role": "超级管理员"},{"name": "李四", "salary": 30000, "role": "管理员"},{"name": "王五", "salary": 20000, "role": "用户"}]# k1-k4:自定义的 key,name、roles.. 为上述定义的值return render(request, "user_list.html", {"k1": name, "k2": roles, "k3": user_info, "k4": data_list})

user_list.html:

{% load static %} <!-- 导入 static 文件 --><!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h1> 模板语法 </h1>
<div>{{ k1 }}</div>
<hr/>
<!-- k2: 原样显示,k2.:显示某项 -->
<!-- 数组 -->
<div>{{ k2 }}</div>
<div>{{ k2.0 }}</div>
<div>{{ k2.1 }}</div>
<div>{{ k2.2 }}</div>
<div>{% for item in k2 %}<span>{{ item }}</span>{% endfor %}
</div>
<hr/>
<!-- 字典 -->
{{ k3 }}
{{ k3.name }}
{{ k3.salary }}
{{ k3.role }}
<ul>{% for key, value in k3.items %}<li>{{ key }} = {{ value }}</li>{% endfor %}
</ul>
<hr/>
<!-- 复合结构 -->
{{ k4 }}
{{ k4.0 }}
{{ k4.0.name }}
{% for item in k4 %}<div>{{ item.name }} : {{ item.salary }}</div>
{% endfor %}
<hr/>
<!-- 条件判断 -->
{% if k1 == "张三" %}<h1> 我是张三 </h1>
{% elif k1 == "李四" %}<h1> 我是李四 </h1>
{% else %}<h1> 我是.. </h1>
{% endif %}
</body>
</html>

浏览器效果:
在这里插入图片描述

3.4 请求和响应

view.py:

from django.shortcuts import render, HttpResponse, redirect# Create your views here.
def request_response(request):# request 是一个对象,封装了用户发送过来的所有请求相关数据# 1.【请求】获取请求的方式 GET/POSTprint(request.method)# 2.【请求】GET:在 URL 上传递值,速度快,但用户可见# 若浏览器输入:http://127.0.0.1:8000/request_response?n=1&m=2# 则此处输出值:<QueryDict: {'n': ['1'], 'm': ['2']}>print(request.GET)# 3.【请求】POST:在 请求体 中传递值,用户不可见print(request.POST)# 4.【响应】将字符串的内容返回给请求者# return HttpResponse("返回内容")# 5.【响应】读取HTML的内容 + 渲染(替换)#return render(request, "request_response.html", {"title": "我来了"})# 6.【响应】重定向return redirect("https:www.baidu.com")

templates 目录下新建 request_response.html:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><h1> 某些请求 {{ title }}</h1>
</body>
</html>

urls.py:

from django.urls import pathfrom app01 import viewsurlpatterns = [# path('admin/', admin.site.urls),path('index/', views.index),path('user/list', views.user_list),# 请求和响应path('request_response', views.request_response)
]

3.5 表单

views.py:

from django.shortcuts import render, HttpResponse, redirect# Create your views here.
def login(request):if request.method == "GET":return render(request, "login.html")# 如果是 POST 请求,则获取用户提交的数据userName = request.POST.get("user")passWord = request.POST.get("pwd")if userName == 'admin' and passWord == "123":return HttpResponse("登录成功!")else:return render(request, "login.html", {"error_msg": "用户名或密码错误"})

templates 目录下新建 login.html:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h1>用户登录</h1>
<form action="/login/" method="post">{% csrf_token %}<input type="text" name="user" placeholder="用户名"><input type="password" name="pwd" placeholder="密码"><input type="submit" value="提交"> {{ error_msg}}
</form>
</body>
</html>

在这里插入图片描述

urls.py:

"""
from django.contrib import admin
from django.urls import pathfrom app01 import viewsurlpatterns = [# path('admin/', admin.site.urls),# 用户登录path('login/', views.login)
]

相关文章:

Python Django 详解(基础)

文章目录 1 概述1.1 安装 django1.2 创建 django 项目1.3 创建 app 2 启动 Django2.1 settings.py&#xff1a;注册 app2.2 view.py&#xff1a;URL和视图对应2.3 启动 Django2.4 访问 3 快速上手3.1 templates&#xff1a;html 模板3.2 static&#xff1a;静态文件3.3 模板语法…...

C语言内存函数

目录 memcpy(Copy block of memory)使用和模拟实现memcpy的模拟实现 memmove(Move block of memory)使用和模拟实现memmove的模拟实现: memset(Fill block of memory)函数的使用扩展 memcmp(Compare two blocks of memory)函数的使用 感谢各位大佬对我的支持,如果我的文章对你有…...

【Docker】Docker-compose及Consul多容器编排工具

使用一个Dockerfile模版文件可以定义一个单独的应用容器&#xff0c;当需要定义多个容器时就需要编排 docker swarm&#xff08;管理跨节点&#xff09; 编排工具——docker compose Dockerfile可以让用户管理一个单独的应用容器&#xff1b;而Compose则允许用户在一个模板&…...

Unity网络同步方案帧同步和状态同步

网络同步方案 介绍开始我们使用的状态同步&#xff08;实时状态同步&#xff09;后来采用的帧同步 状态同步优点缺点 帧同步顺序执行追帧重连优点缺点 总结 这两年做的都是帧同步和状态同步的项目&#xff0c;正好最近有时间总结一下什么是帧同步和状态同步&#xff0c;之前在做…...

【Monorepo实战】pnpm+turbo+vitepress构建公共组件库文档系统

Monorepo架构可以把多个独立的系统放到一起联调&#xff0c;本文记录基于pnpm > workspace功能&#xff0c;如何构建将vitepress和组件库进行联调&#xff0c;并且使用turbo进行任务顺序编排。 技术栈清单&#xff1a; pnpm 、vitepress 、turbo 一、需求分析 1、最终目标…...

CentOS 编译安装Redis

一、编译配置hiredis.h C来操作redis数据库。通过hiredis接口来实现&#xff0c;目前只能在Linux环境使用。 下载hiredis.h hiredis的下载地址为&#xff1a;https://github.com/redis/hiredis 解压并编译hiredis [rootlocalhost source_code]# pwd /usr/local/source_…...

可拓展的低代码全栈框架

尽管现在越来越多的人开始对低代码开发感兴趣&#xff0c;但已有低代码方案的局限性仍然让大家有所保留。其中最常见的担忧莫过于低代码缺乏灵活性以及容易被厂商锁定。 显然这样的担忧是合理的&#xff0c;因为大家都不希望在实现特定功能的时候才发现低代码平台无法支持&…...

C++11 智能指针

目录 智能指针 异常导致执行流乱跳 智能指针解决问题 auto_ptr unique_ptr sharded_ptr weak_ptr 智能指针 由于C11引入异常之后&#xff0c;执行流乱跳&#xff0c;所以导致之前 malloc/new 的空间很容易没有被释放&#xff0c;导致内存泄露问题。 所以这时候&#x…...

二、WebGPU阶段间变量(inter-stage variables)

二、WebGPU阶段间变量&#xff08;inter-stage variables&#xff09; 在上一篇文章中&#xff0c;我们介绍了一些关于WebGPU的基础知识。在本文中&#xff0c;我们将介绍阶段变量&#xff08;inter-stage variables&#xff09;的基础知识。 阶段变量在顶点着色器和片段着色…...

【Linux】31个普通信号

文章目录 1.每种信号的含义2.两种不能被忽略的信号3.两种不能被捕捉的信号 1.每种信号的含义 信号编号信号名信号含义1SIGHUP如果终端接口检测到一个连接断开&#xff0c;则会将此信号发送给与该终端相关的控制进程&#xff0c;该信号的默认处理动作是终止进程。2SIGINT当用户…...

Mac电脑交互式原型设计 Axure RP 8汉化最新 for mac

Axure RP 8是一款专业且快速的原型设计工具&#xff0c;主要用于定义需求、规格、设计功能和界面。这款工具主要适用于用户体验设计师、交互设计师、业务分析师、信息架构师、可用性专家和产品经理等职业。 Axure RP 8的主要特性包括能够快速设计出应用软件或Web网站的线框图、…...

在线免费无时长限制录屏工具 - 录猎在线版

需要录屏的小伙伴注意啦&#xff0c;想要长时间录制又不想花钱的&#xff0c;可以看下这款在线版录屏软件 —— 录猎在线版&#xff0c;一个录屏软件所需要的基本功能它都有&#xff0c;设置录制范围、录制的声音来源、摄像头也能录制的。同时它是支持Windows和Mac系统的&#…...

c语言文件操作详解:fgetc,fputc,fgets,fputs,fscanf,,fprintf,fread,fwrite的使用和区别

前言&#xff1a;在对于c语言的学习中&#xff0c;我们为了持续使用一些数据&#xff0c;为了让我们的数据可以在程序退出后仍然保存并且可以使用&#xff0c;我们引入了文件的概念和操作&#xff0c;本文旨在为大家分享在文件操作中常用的输入输出函数的使用方式和技巧&#x…...

Harmony装饰器

1、装饰器 装饰器是用于装饰类、结构、方法以及变量&#xff0c;并赋予其特殊的含义。如&#xff1a; Component表示自定义组件Entry表示该自定义组件为入口组件State表示组件中的状态变量&#xff0c;状态变量变化会触发UI刷新。 2 、语法范式 Builder/BuilderParam&#…...

如何加快Chrome谷歌浏览器下载速度?

用Chrome打开chrome://flags/...

使用kubectl连接远程Kubernetes(k8s)集群

使用kubectl连接远程Kubernetes集群 环境准备下载kubectl下载地址 安装kubectl并处理配置文件Windows的安装配置安装kubectl拉取配置文件安装kubectl拉取配置文件kubectl命令自动补全 Linux的安装配置安装kubectl拉取配置文件kubectl命令自动补全 环境准备 你需要准备一个Kube…...

Kubernetes革命:云原生时代的应用编排和自动化

文章目录 什么是Kubernetes以及为何它备受欢迎&#xff1f;云原生应用和K8s的关系Kubernetes的核心概念&#xff1a;Pods、Services、ReplicaSets等部署、扩展和管理应用程序的自动化容器编排的演进&#xff1a;Docker到Kubernetes实际用例&#xff1a;企业如何受益于K8s的应用…...

mysql.mongoDb,neo4j数据库对比

#Mysql与MongoDb和Neo4j的一些对比 主要区别 MySQL&#xff1a; 1.MySQL是一种关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;广泛用于处理结构化数据。 2.它支持SQL语言&#xff0c;具备成熟的事务处理和数据一致性能力。 3.MySQL适用于大多数传统的基于表…...

unity使用UniStorm 5.1.0.unitypackage增加天气

添加天天气组件unistorm 然后添加一个player 导入包会报错,需要修改代码 using UnityEngine; using UnityEngine.PostProcessing;namespace UnityEditor.PostProcessing {[CustomPropertyDrawer(typeof(UnityEngine.PostProcessing.MinAttribute))]sealed class MinDrawer : …...

Flink实现kafka到kafka、kafka到doris的精准一次消费

1 流程图 2 Flink来源表建模 --来源-城市topic CREATE TABLE NJ_QL_JC_SSJC_SOURCE ( record string ) WITH (connector kafka,topic QL_JC_SSJC,properties.bootstrap.servers 172.*.*.*:9092,properties.group.id QL_JC_SSJC_NJ_QL_JC_SSJC_SOURCE,scan.startup.mode …...

Gemma-3-12B-IT WebUI保姆级教程:含Supervisord进程守护与开机自启

Gemma-3-12B-IT WebUI保姆级教程&#xff1a;含Supervisord进程守护与开机自启 1. 前言&#xff1a;为什么选择Gemma-3-12B-IT&#xff1f; 如果你正在寻找一个性能强劲、部署友好&#xff0c;而且完全免费开源的大语言模型&#xff0c;那么Google的Gemma-3-12B-IT绝对值得你…...

乙巳马年春联生成终端步骤详解:横批居中与上下联基线对齐的CSS技巧

乙巳马年春联生成终端步骤详解&#xff1a;横批居中与上下联基线对齐的CSS技巧 1. 引言&#xff1a;从创意到像素的挑战 想象一下&#xff0c;你正在开发一个充满年味的Web应用——一个能自动生成马年春联的“皇城大门”。AI模型已经为你写出了文采斐然的上下联和横批&#x…...

8款降AI工具实测:知网维普全过,毕业季改稿不踩坑

每到毕业季&#xff0c;不少同学都会卡在论文AIGC检测这一关&#xff1a;熬了好几个通宵打磨的稿子&#xff0c;一查AI率直接飙到80%以上&#xff0c;被导师打回要求重改&#xff0c;眼看提交截止日一天天临近&#xff0c;越急越不知道从哪下手。其实现在主流的AI检测算法早就有…...

Fish Speech 1.5API文档增强:OpenAPI 3.0规范生成与Swagger UI集成

Fish Speech 1.5 API文档增强&#xff1a;OpenAPI 3.0规范生成与Swagger UI集成 1. 引言&#xff1a;为什么需要API文档增强&#xff1f; 在实际开发中&#xff0c;我们经常遇到这样的场景&#xff1a;团队新成员需要快速了解API接口&#xff0c;第三方开发者想要集成语音合成…...

OpenClaw节日营销助手:gemma-3-12b-it自动生成祝福语与发送邮件

OpenClaw节日营销助手&#xff1a;gemma-3-12b-it自动生成祝福语与发送邮件 1. 为什么需要节日营销自动化&#xff1f; 去年端午节前夜&#xff0c;我盯着电脑屏幕上的200多个客户邮箱地址发呆。每个客户都需要个性化的节日祝福&#xff0c;但手动编写和发送至少需要6小时。当…...

2026降AIGC率工具实测:10款好用工具推荐(论文AI痕迹重必看)

临近毕业季&#xff0c;不少同学都在为论文的AIGC检测头疼&#xff1a;明明是自己写的内容&#xff0c;却被判定为AI生成&#xff1f;用AI搭了初稿&#xff0c;怎么改都消不掉机器痕迹&#xff1f;到底有没有靠谱的降AI率工具能真正解决问题&#xff1f; 今天我就给大家整理了1…...

Glide框架在Java中的高效集成与动图加载实践

1. 为什么选择Glide处理Java项目中的动图加载 第一次在Android项目里遇到动图加载需求时&#xff0c;我试过用原生ImageView逐帧解析&#xff0c;结果内存直接爆了。后来发现Glide这个宝藏框架&#xff0c;它就像个智能的动图管家&#xff0c;把复杂的解码、内存管理、缓存优化…...

Agent在零售行业能解决哪些痛点?——深度解析零售企业智能自动化转型路径

在2026年零售行业加速迈向智能化的背景下&#xff0c;AI Agent&#xff08;人工智能智能体&#xff09;已不再仅仅是技术实验室的产物&#xff0c;而是演变为重构行业价值链的核心驱动力。传统的零售运营长期受困于人力密集型模式&#xff0c;面临着全球化运营复杂度高、数据孤…...

实战派指南:用MaPLe思路优化你的CLIP下游任务,附关键配置与避坑建议

实战派指南&#xff1a;用MaPLe思路优化你的CLIP下游任务&#xff0c;附关键配置与避坑建议 当CLIP遇上业务场景&#xff0c;90%的开发者都会遇到相同的问题&#xff1a;模型在新类别上的表现总是不尽如人意。上周团队用默认参数跑跨模态检索任务时&#xff0c;基类准确率82%的…...

WeClaw_42_Agent工具注册全链路:从BaseTool到意图识别的标准化接入

WeClaw_42_Agent工具注册全链路&#xff1a;从BaseTool到意图识别的标准化接入作者: WeClaw 开发团队 日期: 2026-03-29 版本: v1.0 标签: Agent 工具、BaseTool、意图识别、渐进式暴露、延迟注入&#x1f4d6; 摘要 本文系统讲解 WeClaw Agent 工具注册的完整链路。当需要将一…...