基于Pycharm的Django学习1 —— Django三种响应

基于Pycharm的Django学习1 —— Django三种响应Flask学完啦,那就来学Django吧,学习真的是会上瘾的奥!由于Flask比较简单,而且Django和Flask有很多基础语法也是有相通之处的,所以就不写Flask的博客了,一起学Django吧!基于Pycharm的Django学习Python-WebDjango的三种响应响应文本内容响应html页面响应重定向Python-Web其实在上一篇博客中,讲解Pycharm社区版创建Django项目的时候,已经讲了项目的目录结构,以及每一个文件主要是用来干什么的。但是还没有和前端联动,现在在项

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Flask学完啦,那就来学Django吧,学习真的是会上瘾的奥!

由于Flask比较简单,而且Django和Flask有很多基础语法也是有相通之处的,所以就不写Flask的博客了,一起学Django吧!

Python – Web

其实在上一篇博客中,讲解Pycharm社区版创建Django项目的时候,已经讲了项目的目录结构,以及每一个文件主要是用来干什么的。但是还没有和前端联动,现在在项目目录结构中加入web联动吧。

我们知道Flask中的Web部分,是放在templates(Html文件)和static(静态文件:诸如Css、Js、Img、Fonts等)文件夹下的。那么在Django中,也是一样的。但是由于Django不仅有Django项目,而且还有App项目,所以一定要注意放的位置,一般是放在App项目目录下!

第一步:在Django项目的App文件夹下创建static文件夹和templates文件夹,注意文件夹名不要写错哇,不然后面跑项目的时候可能找不到对应的网页文件。

在这里插入图片描述
这样在昨天项目目录的基础上,就多了这两个。

在这里插入图片描述
第二步:把我们从BootStrap官网上下载的一些静态文件以及一个jquery.js文件,都拷贝到刚刚创建的static文件

在这里插入图片描述
在这里插入图片描述
这样,python-web的基本目录结构就搭建好了,后续就是往里面填充内容咯!

Django的三种响应

Django基础的是有三种响应,一种是响应文本内容,一种是响应html页面,一种是响应重定向。

响应文本内容

第一步:首先在urls.py里面配置url到视图函数的对应关系。

在这里插入图片描述
第二步:然后在views.py里面编写视图函数。

# 默认会有参数request
def index1(request):
    return HttpResponse("欢迎使用Django")

在这里插入图片描述
需要注意的是,这一个视图函数的参数request,其是一个对象,封装了用户发送过来的所有请求相关数据。

响应文本内容的时候,需要使用HttpResponse()函数,其中的参数是你想在页面进行展示的文本内容,一般是字符串形式,使用双引号包含起来。

第三步:运行起来项目。

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

响应html页面

第一步:首先在urls.py里面配置url到视图函数的对应关系。
在这里插入图片描述
第二步:然后在views.py里面编写视图函数。

# request是一个对象,封装了用户发送过来的所有请求相关数据
def index2(request):
    # 获取请求方式 GET/POST
    print(request.method)
    # 获取在URL传递的值
    print(request.GET)
    # 获取在请求体中传递的数据
    print(request.POST)
    # Django读取Html内容 进行渲染替换后 转换为字符串 最后返回给浏览器 (返回Html内容的时候是可以在render中传参数的 这里没写 后面讲到模板语法的时候再讲)
    return render(request, "demo.html")

在这里插入图片描述
响应html页面的时候,需要使用render()函数,其第一个参数是request对象,第二个参数是你想要响应的html页面文件名称,第三个参数可以是你后端想要传递给前端页面的信息(这里我没写)。

一定要注意,这个第二个参数的html页面文件是存放在上述建立的templates文件夹下,当你使用render()函数时,解析器会根据你的html文件名称去app项目下的templates文件夹中找,所以一定要注意不要放错位置。

当然还有一种情况,有人可能会问,那要是我不是在app项目下建立的templates文件夹,我是在Django项目下建立的templates文件夹,我把html文件放在那里面怎么办呢?

还记得我们上一篇博客里面讲的app注册吗?

一般是按照app的注册顺序,去每一个app项目对应的templates文件夹中查找,但是在settings.py文件中默认有这样一行,如果加了这一行的话,那么解析器是优先在Django根目录下的templates文件夹中查找,如果没有的话,再去按照app的注册顺序,去每一个app项目对应的templates文件夹中查找。(可能有一点绕,反复理解)

在这里插入图片描述

但是一般在项目开发中,都不推荐上述优先在根目录中找的那种方法,如果你是拿到别人的项目,别人有这一句的话,也需要小心了,变成如下配置。

在这里插入图片描述
第三步:运行起来项目。

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

响应重定向

第一步:首先在urls.py里面配置url到视图函数的对应关系。

在这里插入图片描述
第二步:然后在views.py里面编写视图函数。

def index3(request):
    return redirect("https://blog.csdn.net/qq_43779149")

在这里插入图片描述
这里我是重定向到了我的博客主页,下面我们来了解一下这个重定向的原理。

在这里插入图片描述

也就是说,比如浏览器给Django发送请求,想要重定向到我的博客,那么浏览器就会把我的博客url返回给浏览器,然后浏览器再去自己发送请求访问我的博客,而不是Django给我的博客发送请求后,再把内容返回给浏览器。

第三步:运行起来项目。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
重定向的结果:

在这里插入图片描述

大家快也动动发财的小手去试一试吧!!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/196160.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • kafka批量删除topic_kafka自动创建topic

    kafka批量删除topic_kafka自动创建topic方法一:快速配置删除法1.kafka启动之前,在server.properties配置delete.topic.enable=true2.执行命令bin/kafka-topics.sh–delete–topictest–zookeeperzk:2181或者使用kafka-manager集群管理工具删除注意:如果kafka启动之前没有配置delete.topic.enab…

    2022年10月7日
    2
  • django权限管理例子_django admin 自定义页面

    django权限管理例子_django admin 自定义页面前言上一篇我们分析了认证的源码,一个请求认证通过以后,第二步就是查看权限了,drf默认是允许所有用户访问权限源码分析源码入口:APIView.py文件下的initial方法下的check_per

    2022年8月7日
    5
  • centos7 top命令_top是什么命令

    centos7 top命令_top是什么命令top命令Linuxtop命令用于实时显示process的动态。top参数详解第一行,任务队列信息**系统当前时间:**13:52:56**系统开机后到现在的总运行时间:**up66

    2022年7月31日
    1
  • Django设置超时时间_python获取当前时间戳

    Django设置超时时间_python获取当前时间戳前言我们都知道时区,标准时区是UTC时区,django默认使用的就是UTC时区,所以我们存储在数据库中的时间是UTC的时间,但是当我们做的网站只面向国内用户,或者只是提供内部平台使用,我们希望存储在

    2022年7月28日
    87
  • 组合数的各种性质和定理

    组合数的各种性质和定理从m个物品里选出n个的方案数,记作CnmCmnC_m^n,即为组合数组合数有很多很多的性质和定理。。。注意由于本人沉迷玩梗无法自拔,如果看见您看不懂的梗请随意跳过。组合数通项公式Cnm=m!n!∗(m−n)!Cmn=m!n!∗(m−n)!C_m^n=\frac{m!}{n!*(m-n)!}证明:现在我们从m个不同的数里选出n个数组成一个排列,第一个位子上的数有m种取法,第二…

    2022年7月15日
    13
  • 我国人口老龄化预测_中国人口老龄人口比例

    我国人口老龄化预测_中国人口老龄人口比例1、国内人口增速逐步下滑我国人口总量将近14亿,增速持续降低,城镇化率接近60%。建国以来,随着经济社会发展,我国人口总量从1949年的5.4亿人,增长至2018年13.9亿人。从增速来看,70年代人口总量的增速迅速下滑至1.3%-1.5%左右,90年代以来,人口总量增速持续缓慢下滑,近年保持在0.5%左右,但2018年增速进一步降低至0.4%。另一方面,中国城镇化率不断提升,到2018年已经达到59.58%。2018年我国人口总量为13.9亿人,同比增长0.4%,城镇化率59.58%数据来

    2025年9月14日
    22

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号