Django学习——基础篇(上)

news2024/11/15 17:19:10

一、Django的安装

pip install django

python目录下出现两个文件
djando-admin.exe
django

django-admin.exe

django-admin.exe

django

在这里插入图片描述

二、创建项目

1.命令行(终端)

1.打开终端

win+R
输入cmd

2.进入项目目录
在这里插入图片描述
3.执行命令创建项目
在这里插入图片描述
在这里插入图片描述

2.Pycharm

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

两种方法对比

1.命令行创建的项目更标准
2.pycharm创建的项目比命令行多了两样东西【需要删掉】
·创建了templates目录
·settings.py中
在这里插入图片描述
在这里插入图片描述

默认文件

在这里插入图片描述

三、创建app

python manage.py startapp [appname]

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

显示所有目录

tree /F

在这里插入图片描述
在这里插入图片描述
├─app01
│ │—admin.py【固定,不用动】django默认提供了admin后台管理。
│ │—apps.py【固定,不用动】app启动类
│ │—models.py【 ** 重要 ** 】,对数据库操作。
│ │—tests.py【固定,不用动】单元测试
│ │—views.py【 ** 重要 ** 】,函数。
│ │—__ init __.py
│ │
│ └─migrations【固定,不用动】数据库变更记录
│ __ init __.py

└─mysite1
│—asgi.py
│—settings.py
│—urls.py【URL->函数】
│—wsgi.py
│— __ init __.py

四、启动运行django

1、确保app已注册【settings.py】

在【settings.py】中的 INSTALLED_APPS 中添加:
在这里插入图片描述
参考【apps.py】中的类名:
在这里插入图片描述

2、编写 URL 和视图函数的对应关系【urls.py】

在这里插入图片描述

3、编写视图函数【views.py】

在这里插入图片描述

4、启动django项目

1.命令行启动

python manage.py runserver

在这里插入图片描述

2.pycharm启动
在这里插入图片描述

3.运行
在这里插入图片描述
在这里插入图片描述

5、再写一个页面

-url --> 函数
-函数

在这里插入图片描述

五、模板和静态文件

1、templates 模板

在【views.py】中:
在这里插入图片描述
创建【templates】文件夹和【user_list.html】:
在这里插入图片描述
在这里插入图片描述

2、静态文件【static】

在开发过程中一般将:图片、css、js都会当做静态文件处理。
1.static目录
在app目录下创建static文件夹
在这里插入图片描述
2.引用静态文件
在这里插入图片描述

在这里插入图片描述

六、django的模板语法

本质上:在HTML中写一些占位符,由数据对这些占位符进行替换和处理。

【urls.py】文件
from django.urls import path
from app01 import views

urlpatterns = [
    path('tpl/', views.tpl),
]
【views.py】文件
from django.shortcuts import render, HttpResponse, redirect
def tpl(request):
    name = "布莱克"
    roles = ["光明守护者", "邪灵二当家", "战联副队"]
    user_info = {"name": "布莱克", 'friend': "索兰特", 'role': "夜魔之神"}
    data_list = [
        {"name": "布莱克", 'attribute': "暗影系", 'role': "夜魔之神"},
        {"name": "卡修斯", 'attribute': "地暗影系", 'role': "大地之神"},
        {"name": "雷伊", 'attribute': "电系", 'role': "雷神"},
        {"name": "盖亚", 'attribute': "战斗系", 'role': "战神"},
        {"name": "缪斯", 'attribute': "超能系", 'role': "赤瞳"},
    ]
    return render(request, "tpl.html", {"n1": name, "n2": roles, "n3": user_info, "n4": data_list})
【tpl.html】文件
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>模板语法的学习</h1>
<div>{{ n1 }}</div>
<div>{{ n2 }}</div>
<div>{{ n2.0 }}</div>
<div>{{ n2.1 }}</div>
<div>{{ n2.2 }}</div>
<div>
    {% for item in n2 %}
        <span>{{ item }}</span>
    {% endfor %}
</div>
<hr/>
{{ n3 }}
{{ n3.name }}
{{ n3.friend }}
{{ n3.role }}
<ul>
{% for k,v in n3.items %}
    <span>{{ k }} = {{ v }}</span>
{% endfor %}
</ul>
<hr/>
{{ n4.1 }}
{{ n4.1.name }}
{{ n4.1.role }}

{% for item in n4 %}
    <div>{{ item.name }}  {{ item.attribute }}</div>
{% endfor %}
<hr/>
{% if n1 == "布莱克" %}
    <h1>光明的救赎</h1>
{% else %}
    <h1>威斯克</h1>
{% endif %}

{% if n1 == "威斯克" %}
    <h1>光明的救赎</h1>
{% elif n1 == "卡修斯" %}
    <h1>诅咒之子</h1>
{% else %}
    <h1>赛尔号</h1>
{% endif %}

</body>
</html>
运行结果

在这里插入图片描述

运行模式

在这里插入图片描述

七、请求和响应

【urls.py】文件
from django.urls import path
from app01 import views

urlpatterns = [
    # 请求和响应
    path('something/', views.something),
]
【views.py】文件
from django.shortcuts import render, HttpResponse, redirect
def something(request):
    # request是一个对象,封装了用户发送过来的所有请求相关数据
    # 1.获取请求方式 GET/POST
    print(request.method)

    # 2.在URL上传递值 /something/?n1=123&n2=999
    print(request.GET)

    # 3.在请求体中提交数据
    print(request.POST)

    # 4.【响应】HttpResponse("返回内容"),内容字符串内容返回给请求者
    # return HttpResponse("返回内容")

    # 5.【响应】读取HTML的内容 + 渲染(替换)  ->字符串,返回给用户的浏览器
    # return render(request, "something.html", {"title": "来了"})

    # 6.【响应】让浏览器重定向到其他的页面
    return redirect("https://www.baidu.com")
【something.html】文件
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>某些请求{{ title }}</h1>
</body>
</html>
运行结果

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

在这里插入图片描述

关于重定向:第二种形式是对的

在这里插入图片描述

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

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

相关文章

FL Studio21中文版本下载更新内容详细介绍

FL Studio推出全新21版&#xff0c;为原创音乐人提供更好用的DAW&#xff08;数字音乐工作站&#xff09;工具。FL Studio国人也叫它水果编曲软件&#xff0c;是一款有着22多年历史的经典音乐创作软件。已有上千万的用户每天在使用水果编曲创作自己的音乐。它被公认为最适合新手…

Stochastic Approximation 随机近似方法的详解之(一)

随机近似的定义&#xff1a;它指的是一大类随机迭代算法&#xff0c;用于求根或者优化问题。 Stochastic approximation refers to a broad class of stochastic iterative algorithms solving root finding or optimization problems. temporal-difference algorithms是随机近…

原子级操作快速自制modbus协议

原子级操作手把手搞懂modbus协议文章目录[toc]1 modbus协议基础概念1.1 使用场所1.2 主从协议站1.3 modbus帧描述1.4 数据模式1.5 modbus状态机2 modbus协议2.1 功能码2.2 公共功能码2.3 数据域格式3 modbus从站程序设计3.1 接口初始化3.2 数据处理部分查表法设置超时时间3.2 主…

堆的概念结构及实现

文章目录1.堆的概念及结构2.堆的实现2.1父子节点之间的关系2.2堆的向上排序算法2.3 堆的删除2.4堆的向下排序算法2.5入堆2.6堆的创建2.6.1通过入堆实现&#xff08;通过向上堆排序&#xff09;2.6.2通过向下排序实现2.6.3两种方法比较2.7代码实现2.7.1函数声明2.7.2函数实现2.7…

前端开发与vscode开发工具介绍

文章目录1、前端开发2、vscode安装和使用2.1、下载地址2.2、插件安装2.3、设置字体大小2.4、开启完整的Emmet语法支持2.5、创建项目2.6、保存工作区2.7、新建文件夹和网页1、前端开发 前端工程师“Front-End-Developer”源自于美国。大约从2005年开始正式的前端工程师角色被行…

【Python入门第二十一天】Python 数组

请注意&#xff0c;Python 没有内置对数组的支持&#xff0c;但可以使用 Python 列表代替。 数组 数组用于在单个变量中存储多个值&#xff1a; 实例 创建一个包含汽车品牌的数组&#xff1a; cars ["Porsche", "Volvo", "BMW"]运行实例 …

【我的车载技术】 Android AutoMotive 之 init与zygote内核原理

init概述 init是一个进程&#xff0c;确切地说&#xff0c;它是Linux系统中用户空间的第一个进程。由于Android是基于Linux内核的&#xff0c;所以init也是Android系统中用户空间的第一个进程&#xff0c;它的进程号是1。作为天字第一号的进程&#xff0c;init被赋予了很多极其…

FFmpeg最常用命令参数详解及应用实例

FFMPEG堪称自由软件中最完备的一套多媒体支持库&#xff0c;它几乎实现了所有当下常见的数据封装格式、多媒体传输协议以及音视频编解码器&#xff0c;提供了录制、转换以及流化音视频的完整解决方案。 ffmpeg命令行参数解释 ffmpeg -i [输入文件名] [参数选项] -f [格式] [输出…

lambada表达式

负壹、 函数式编程 Java为什么要支持函数式编程&#xff1f; 代码简洁 函数式编程写出的代码简洁且意图明确&#xff0c;使用stream接口让你从此告别for循环。 多核友好 Java函数式编程使得编写并行程序从未如此简单&#xff0c;你需要的全部就是调用一下parallel()方法。 Jav…

C++ -- STL简介、string的使用

什么是STL STL(standard template libaray-标准模板库)&#xff1a;是C标准库的重要组成部分&#xff0c;不仅是一个可复用的组件库&#xff0c;而且是一个包罗数据结构与算法的软件框架。 STL的版本 原始版本&#xff1a;Alexander Stepanov、Meng Lee 在惠普实验室完成的原…

Person p=new student()是什么意思

记住&#xff1a;父类引用子类对象 Student t new Student(); 实例化一个Student的对象&#xff0c;这个不难理解。但当我这样定义时&#xff1a;Person p new Student(); 这代表什么意思呢&#xff1f; 很简单&#xff0c;它表示我定义了一个Person类型的引用&#xff0c;指…

内大892复试真题16年

内大892复试真题16年 1. 输出三个数中较大数2. 求两个数最大公约数与最小公倍数3. 统计字符串中得字符个数4. 输出菱形5. 迭代法求平方根6. 处理字符串(逆序、进制转换)7. 寻找中位数8. 输入十进制输出n进制1. 输出三个数中较大数 问题 代码 #include <iostream>usin…

如何保护页面端的企业邮箱

作为日常工作交流中不可或缺的工具&#xff0c;电子邮件的安全性一直是备受关注的话题。页面是企业邮箱用户日常邮箱使用的重要接入终端&#xff0c;企业邮箱承载着企业的重要业务内容和关键数据。这个环节的安全问题会对企业产生深远的影响&#xff0c;信息安全建设的重要性不…

CharGPT无法替代的职场发展底层逻辑

​ 什么是职场发展的两大底层逻辑&#xff1f; 一为对事&#xff0c;一为对人&#xff0c;二者不可偏废&#xff0c;否则就会成为“职场上的瘸子”。 01 在刚开始工作的很长一段时间里&#xff0c;我遇到了同一个问题 - 虽然我对自己的工作认真负责&#xff0c;但职业发展却并…

移动硬盘文件或目录损坏且无法读取?分享恢复数据的方法

案例&#xff1a;移动硬盘提示无法访问&#xff0c;文件或目录损坏且无法读取&#xff1f; “这个移动硬盘两年没用了&#xff0c;今天拿出来找文件&#xff0c;插上电脑后移动硬盘打不开&#xff0c;提示无法访问&#xff0c;文件或目录损坏且无法读取。硬盘里有重要文件&…

在字节跳动做了5年软件测试,12月无情被辞,想给划水的兄弟提个醒

先简单交代一下背景吧&#xff0c;某不知名 985 的本硕&#xff0c;17 年毕业加入字节&#xff0c;以“人员优化”的名义无情被裁员&#xff0c;之后跳槽到了有赞&#xff0c;一直从事软件测试的工作。之前没有实习经历&#xff0c;算是5年的工作经验吧。 这5年之间完成了一次…

SpringBoot异常处理

目录 一、 错误处理 1. 默认规则 2. 定制错误处理逻辑 二、自定义异常处理 1. 实现 ErrorController 2. RestControllerAdvice/ControllerAdvice ExceptionHandler 实现自定义异常 3. 新建 UserController.class 测试 3 种不同异常的处理 4. 最终效果如下 补充 1. 参…

【数据结构】八大经典排序总结

文章目录一、排序的概念及其运用1.排序的概念2.常见排序的分类3.排序的运用二、常见排序算法的实现1.直接插入排序1.1排序思想1.2代码实现1.3复杂度及稳定性1.4特性总结2.希尔排序2.1排序思想2.3复杂度及稳定性2.4特性总结3.直接选择排序3.1排序思想3.2代码实现3.3复杂度及稳定…

《数据治理行业实践白皮书》正式发布,开辟数据治理新范式(附下载)

近日&#xff0c;作为首届未来数商大会协办单位之一&#xff0c;袋鼠云承办“首届未来数商大会——业数融合创新论坛”&#xff0c;与参会嘉宾共同探讨数据驱动企业业务增长提效的新思路。袋鼠云联合创始人、易知微CEO 宁海元发表主题演讲《数智视融合&#xff0c;构建数字产业…

Docker安装Cassandra数据库,在SpringBoot中连接Cassandra

简介 Apache Cassandra是一个高度可扩展的高性能分布式数据库&#xff0c;旨在处理许多商用服务器上的大量数据&#xff0c;提供高可用性而没有单点故障。它是NoSQL数据库的一种。首先让我们了解一下NoSQL数据库的作用。 NoSQL 数据库 NoSQL数据库&#xff08;有时称为“Not …