Django学习记录:初步认识django以及实现了简单的网页登录页面的前后端开发

Django学习记录:初步认识django以及实现了简单的网页登录页面的前后端开发

1、可以先删去template文件夹,并在setting里面删掉这一行

在这里插入图片描述

2、在pycharm中创建app:

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

3、启动app:编写URL与视图函数关系【urls.py】

​ 编写视图函数【views.py】

​ 启动pycharm项目
在这里插入图片描述

4、引用静态文件

在这里插入图片描述

其中有两个文件的导入:(jquery和bootstrap)

jquery:https://code.jquery.com/jquery-3.6.0.min.js 可以直接复制下来创建记事本保存并更改为js文件即可使用。

bootstrap:https://v3.bootcss.com/getting-started/#download 可以在该网站直接下载,但下载端在github。(有需要的也可以私信我)


模板语法

视图函数的render内部:

1.读取含有模板语法的HTML文件

2.内部进行渲染(模板语法执行并替换数据),最终得到只包含HTML标签的字符串。

3.将渲染(替换)哇长城的字符串返还给用户浏览器

views.py下的代码:

from django.shortcuts import render,HttpResponse

# Create your views here.
def index(request):
    return HttpResponse("欢迎使用")

def user_list(request):
    # 1.如果未删除默认setting中dirs那行代码,则有限去项目根目录的templates中寻找(提前先配置)【不配置就是无效】
    # 2.根据app的注册顺序,在每个app下的templates目录中寻找【更改设置后】

    return render(request, "user_list.html")

def user_add(request):
    return render(request, "user_add.html")


def tpl(request):
    name = "饺子"
    # 列表,元组与列表相同
    role =["保安","CEO","管理员"]
    # 字典
    user_info={"name":"包子","salary":10000,"role":"CTO"}

    data_list=[
        {"name": "包子", "salary": 10000, "role": "CTO"},
        {"name": "馒头", "salary": 10000, "role": "CTO"},
        {"name": "馄饨", "salary": 10000, "role": "CTO"},
    ]

    return render(request, "tpl.html", {"n1":name, "n2":role,"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.role }}
<ul>
    {% for k,v in n3.items %}
        <li>{{ k }}={{ v }}</li>
    {% endfor %}
</ul>

<hr/>
{{ n4.0 }}
{{ n4.1.name }}
    {% for item in n4 %}
        <div>{{ item.name }}  {{ item.salary }}</div>
    {% endfor %}

<hr/>
{% if n1 == "饺子" %}
    <h1>dadadadada</h1>
{% else %}
    <h1>dududududu</h1>
{% endif %}

</body>
</html>

网页端显示:
在这里插入图片描述

请求和相应

def sth(request):
    # request是一个对象,封装了用户发送过来的所有请求相关数据

    # 1.获取请求方式 GET/POST
    print(request.method)

    # 2.在URL上传递值(即在网址后面添加:/sth/?n1=123&n2=999,则会传回n1,n2对应的值)
    print(request.GET)

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

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

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

    # 6.(响应)让浏览器重定向到其他的页面
    return redirect("http://www.baidu.com")

登录界面的编写

def login(requset):
    if requset.method == "GET":
        return render(requset, "login.html")

    # 如果是POST请求,获取用户提交的数据
    # print(requset.POST)
    username = requset.POST.get("user")
    password = requset.POST.get("pwd")

    if username == 'root' and password == "123":
        # return HttpResponse("登陆成功")
        return redirect("https://www.bbac.com.cn/cn/")
    # 可删去else,以省略嵌套。
    else:
        # return HttpResponse("登陆失败")
          return render(requset, 'login.html', {"error_msg": "用户名或密码错误"})
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<h1>用户登录</h1>
<form method="post" action = "/login/">

    {% csrf_token %}

    <input type = "text" name = "user" placeholder="用户名">
    <input type = "password" name = "pwd" placeholder="密码">
    <input type = "submit" value="提交">
    <span style="color:red;"> {{ error_msg }}</span>

</form>

</body>
</html>

登录失败:则如下界面;登录成功,则跳转网页。
在这里插入图片描述

课程来源:
2022 B站最详细django3教程(django从入门到实践)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

无人机自动返航的关键技术有哪些

无人机的广泛应用使得无人机自动返航技术变得至关重要。在各种应对意外情况的背景下&#xff0c;无人机自动返航技术的发展对确保无人机的安全&#xff0c;以及提高其应用范围具有重要意义。接下来&#xff0c;便为大家详细介绍无人机自动返航所运用到的关键技术。 一、定位与导…

【ASP.NET MVC】生成页面(6)

本应该继续数据库访问的问题进行探讨&#xff0c;前文确实比较LOW。但本人认为&#xff1a;初学者需要解决的是快速了解知识路线的问题&#xff0c;所谓“生存问题”&#xff0c;所以&#xff0c;干脆把流程先走完。 一、页面生成 下面这张图在前面已经介绍过&#xff1a; 前…

Python(六十)字典的创建

❤️ 专栏简介&#xff1a;本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中&#xff0c;我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 &#xff1a;本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

服务器数据恢复-raid5同步过程中又有一块磁盘报警的数据恢复案例

服务器数据恢复环境&#xff1a; 某研究院一台DELL存储&#xff0c;15块硬盘搭建的一组RAID5磁盘阵列。 该RAID5阵列只有一个卷组&#xff0c;该卷组占用了阵列的全部空间&#xff1b;该卷组只有一个起始位置为0扇区的XFS裸分区。 服务器故障&初检&分析&#xff1a; 该…

无涯教程-Lua - while语句函数

只要给定条件为真&#xff0c;Lua编程语言中的 while 循环语句就会重复执行目标语句。 while loop - 语法 Lua编程语言中 while 循环的语法如下- while(condition) dostatement(s) end while loop - 流程图 在这里&#xff0c;需要注意的关键是 while 循环可能根本不执行。…

面试总结-Redis篇章(十一)——分片集群、数据读写规则

分片集群、数据读写规则 主从&#xff08;解决高并发&#xff09;和哨兵&#xff08;解决高可用&#xff09;分别解决了高并发读、高可用的问题。但是依然有两个问题没有解决&#xff1a;解决办法&#xff1a;使用分片集群可以解决上述问题。 特征&#xff1a;客户端请求可以访…

【雕爷学编程】Arduino动手做(181)---Maixduino AI开发板7

37款传感器与执行器的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&am…

多线程案例(3)

文章目录 多线程案例三三、 定时器 大家好&#xff0c;我是晓星航。今天为大家带来的是 多线程案例三 相关的讲解&#xff01;&#x1f600; 多线程案例三 三、 定时器 定时器是什么 定时器也是软件开发中的一个重要组件. 类似于一个 “闹钟”. 达到一个设定的时间之后, 就…

API教程:轻松上手HTTP代理服务!

作为HTTP代理产品供应商&#xff0c;我们为您带来一份详细的教程&#xff0c;帮助您轻松上手使用API&#xff0c;并充分利用HTTP代理服务。无论您是开发人员、网络管理员还是普通用户&#xff0c;本教程将为您提供操作指南和代码模板&#xff0c;确保您能够顺利使用API并享受HT…

基于埋点日志数据的网络流量统计 - PV、UV

水善利万物而不争&#xff0c;处众人之所恶&#xff0c;故几于道&#x1f4a6; 文章目录 一、 网站总流量数统计 - PV 1. 需求分析 2. 代码实现 方式一 方式二 方式三&#xff1a;使用process算子实现 方式四&#xff1a;使用process算子实现 二、网站独立访客数统计 - UV 1. …

【雕爷学编程】MicroPython动手做(28)——物联网之Yeelight 5

知识点&#xff1a;什么是掌控板&#xff1f; 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片&#xff0c;支持WiFi和蓝牙双模通信&#xff0c;可作为物联网节点&#xff0c;实现物联网应用。同时掌控板上集成了OLED…

安防视频综合管理合平台EasyCVR可支持的视频播放协议有哪些?

EasyDarwin开源流媒体视频EasyCVR安防监控平台可提供视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、云台控制、语音对讲、智能分析等能力。 视频监控综合管理平台EasyCVR具备视频融合能力&#xff0c;平台基于云边端一体化架构&#xff0c;具有强大的…

2023 7.31~8.6 周报 (多尺度的DL-FWI + 自然图像的风格迁移速度模型)

->目录<- 0 上周回顾1 本周论文背景简述2 模型架构3 风格化速度模型4 训练与实际数据的测试5 存在的一些问题6 总结和下一步工作 0 上周回顾 上周完成了VelocityGAN的重现和学习. 认识到了利用判别器网络对于常规网络进行约束是很一种很高效的设计思路. 1 本周论文背景…

【物理】带电粒子在磁场和电场中移动的 3D 轨迹研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

innovus: 让ndr使用自定义via def

我正在「拾陆楼」和朋友们讨论有趣的话题&#xff0c;你⼀起来吧&#xff1f; 拾陆楼知识星球入口 让ndr 使用指定via def可以用add_ndr -via命令&#xff0c;如果现有的via list无法满足要求&#xff0c;可以用 add_via_definition -via_rule -row_col去创建。

天工开物 #7 Rust 与 Java 程序的异步接口互操作

许多语言的高性能程序库都是建立在 C/C 的核心实现上的。 例如&#xff0c;著名 Python 科学计算库 Pandas 和 Numpy 的核心是 C 实现的&#xff0c;RocksDB 的 Java 接口是对底层 C 接口的封装。 Rust 语言的基本目标之一就是替代 C 在这些领域的位置&#xff0c;为开发者提供…

小程序如何上传商品图片

了解如何在小程序商城中上传商品图片是非常重要的&#xff0c;因为商品图片的质量和展示效果直接影响到用户对商品的购买决策。下面&#xff0c;我将介绍怎么在小程序上传产品图片的方法和注意事项。 1. 图片准备&#xff1a;在上传商品图片之前&#xff0c;首先要准备好商品图…

CTFSHOW php 特性

web89 数组绕过正则 include("flag.php"); highlight_file(__FILE__);if(isset($_GET[num])){$num $_GET[num]; get numif(preg_match("/[0-9]/", $num)){ 是数字 就输出 nodie("no no no!");}if(intval($num)){ 如果是存在整数 输出 flagecho …

代码调试2:coco数据集生成深度图

代码调试:coco数据集生成深度图 作者:安静到无声 个人主页 问题1:图片存在异常,跳过不处理 在获取深度图的时候,直接执代码,会产生以下错误:RuntimeError和ValueError。 因此我重新修改了代码,如果出现以下两种错误,则执行下一次循环,代码如下: 修改之后代码可以…

二叉树的前,中,后序的非递归实现(c++)

前言 对于二叉树来说&#xff0c;遍历它有多种方式&#xff0c;其中递归遍历是比较简单的&#xff0c;但是非递归的实现就有一定的难度&#xff0c;在这里介绍一种非递归实现二叉树遍历的方式。 1.前序遍历 1.1思路 其实对于二叉树的非递归实现&#xff0c;实际上就是用代码来…