HttpResponse

返回字符串类型的数据

HttpResponse: 这是 Django 自带的类,用于构建基本的 HTTP 响应

我的app名称是demo,我们先按照正常的流程,在views中定义对应的路由函数

from django.shortcuts import HttpResponse

# Create your views here.
def login(request):
return HttpResponse("你好,小满!")

然后我们在``demo.urls`中导入视图函数存放的模块

from django.contrib import admin
from django.urls import path
from app import views # 导入进来 urlpatterns = [
path('admin/', admin.site.urls),
path('login/', views.login) # 增加这行,这里的函数不需要加括号
]

然后我们启动Django,浏览器地址栏输入127.0.0.1:8000/login,便会看到结果:你好,小满!

redirect

redirect 重定向,重定向到本地html页面或者其他的网页,打开之后会自动跳转。

还可以写别名,别名需要参数的话,就必须使用reverse 解析

方式1 直接重定向到一个网页

浏览器地址栏输入127.0.0.1:8000/login,便会看自动重定向了3.cn

# app.views.py
from django.shortcuts import redirect # Create your views here.
def login(request):
return redirect('https://3.cn') # 直接写入一个网址
# urls.py
from django.contrib import admin
from django.urls import path
from app import views # 导入进来 urlpatterns = [
path('admin/', admin.site.urls),
path('login/', views.login) # 增加这行,这里的函数不需要加括号
]

方式2 重定向到一个路径

浏览器地址栏输入127.0.0.1:8000/login,便会看到结果:欢迎来到注册页面!,即注册页面的内容。

# app.views.py
from django.shortcuts import redirect, HttpResponse # Create your views here.
def login(request):
# return redirect('https://3.cn') # 直接写入一个网址
return redirect('/register/') # 这里的register就是下面的路径,需要用两个/包裹起来 def register(request):
return HttpResponse('欢迎来到注册页面!')
# urls.py
from django.contrib import admin
from django.urls import path
from app import views urlpatterns = [
path('admin/', admin.site.urls),
path('login/', views.login),
path('register/', views.register)
]

方式3 重定向到一个别名

这个别名是在demo.urls模块里面,对应的视图函数后面name=别名去设置的,需要在目标路径后面添加别名。

# views.py
from django.shortcuts import redirect, HttpResponse # Create your views here.
def login(request):
# return redirect('https://3.cn') # 直接写入一个网址
# return redirect('/register/') # 重定向到路径
return redirect('register') # 重定向到别名 def register(request):
return HttpResponse('欢迎来到注册页面!')
from django.contrib import admin
from django.urls import path
from app import views urlpatterns = [
path('admin/', admin.site.urls),
path('login/', views.login),
path('register/', views.register, name='register') # name='register' 表示别名
]

render

在写代码之前,我们需要先做一些操作,不然如果路径不对会报错page not found

  1. 在当前项目的根目录下面建立一个templates文件夹,后续的html文件直接放在这个文件夹里面。
  2. 找到settings.py,然后找到TEMPLATES,把把DIRS : [] 改成:DIRS:[BASE_DIR / 'templates']
    • BASE_DIR是一个内置方法,用于获取项目路径,由于默认使用了pathlib模块,所以可以直接这样修改,当然您也可以使用os模块去操作
    • DIRS:[os.path.join(BASE_DIR , 'templates')]

进入templates文件夹下创建一个index.html 页面,可以随意写一些内容,例如:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h2>跟着光、成为光、散发光</h2>
{{ hero_dict }}
{{ now }}
</body>
</html>

返回html页面,并且返回给浏览器之前还可以给html文件传值

import time
from django.shortcuts import redirect, HttpResponse, render def hero(request):
# 视图函数必须要接收一个形参request
hero_dict = {"username": '小满', 'age': 3, 'hobby': '摸鱼'}
now = time.strftime("%x %X %p") # 第一种传值方式
# 建议字典的键和变量名保持一致,这样就可以直接被解析成功了
return render(request, 'index', {'hero_dict': hero_dict, "now": now}) # 第二种传值方式
# locals 会将所在的名称空间中所有的名字全部传递给html页面
return render(request, 'index.html', locals())

2-Django之三板斧的更多相关文章

  1. Django路由层之路由分发 名称空间 虚拟环境 视图层之三板斧 JsonRsponse对象 request对象获取文件 FBV与CBV CBV源码剖析 模板层

    目录 路由层之路由分发 路由层之名称空间 方式1:名称空间 方式2:别名不冲突即可 虚拟环境 pycharm创建虚拟环境 命令行形式创建虚拟环境 视图层之三板斧 HttpRsponse render ...

  2. spring mvc 实战化项目之三板斧

    laravel实战化项目之三板斧 spring mvc 实战化项目之三板斧 asp.net mvc 实战化项目之三板斧 接上文希望从一张表(tb_role_info 用户角色表)的CRUD展开spri ...

  3. asp.net mvc 实战化项目之三板斧

    laravel实战化项目之三板斧 spring mvc 实战化项目之三板斧 asp.net mvc 实战化项目之三板斧 接上文希望从一张表(tb_role_info 用户角色表)的CRUD展开asp. ...

  4. laravel实战化项目之三板斧

    laravel实战化项目之三板斧 spring mvc 实战化项目之三板斧 asp.net mvc 实战化项目之三板斧 laravel是我工作10多年来见到的真正能称得上让phper从面条一样杂乱的代 ...

  5. centos安装Django之三:安装python

    这是centos安装Django系列第三篇,安装python.centos系统已经自带了python2.6,但是它被系统很多程序所依赖,不建议删除.我们可以使用以下命令来查看我们使用的Python版本 ...

  6. Django之三种文件上传

    方式一: 通过form表单提交到后台 前端: <!DOCTYPE html> <html lang="en"> <head> <meta ...

  7. django之三剑客、静态文件配置、请求响应对象、数据库操作

    三剑客 from django.shortcuts import render,HttpResponse,redirect HttpResponse # 返回字符串 render(response, ...

  8. centos安装Django之四:安装Django

    前面我们学会了centos安装Django之一:安装openssl和centos安装Django之二:pip3安装,centos安装Django之三:安装python,现在我们就可以安装Django了 ...

  9. Flask入门request session cookie(二)

    1 HTTP方法分类 1 GET 浏览器告知服务器:只获取页面上的信息并发给我.这是最常用的方法. 2 HEAD 浏览器告诉服务器:欲获取信息,但是只关心消息头 .应用应像处理 GET 请求一样来处理 ...

  10. Django 学习笔记之三 数据库输入数据

    假设建立了django_blog项目,建立blog的app ,在models.py里面增加了Blog类,同步数据库,并且建立了对应的表.具体的参照Django 学习笔记之二的相关命令. 那么这篇主要介 ...

随机推荐

  1. [转帖]gcc -O0 -O1 -O2 -O3 四级优化选项及每级分别做什么优化

    相关博客http://blog.chinaunix.net/uid-24954950-id-2956476.html 相关博客http://blog.csdn.net/misiter/article/ ...

  2. 你对iframe知道多少

    iframe 嵌套第三方页面出现的问题 我们需要通过一个接口获取被嵌套的地址. 然后将改地址赋值给iframe的src中,代码如下 <template> <div> <i ...

  3. 设计模式学习-使用go实现迭代器模式

    迭代器模式 定义 优点 缺点 适用范围 代码实现 参考 迭代器模式 定义 迭代器模式(Iterator Design Pattern),也叫作游标模式(Cursor Design Pattern). ...

  4. 【Jmeter】基础介绍-详细

    最近做压测时使用到Jmeter,为什么用它,之前也做过部分压测,不是很系统,使用的是Apache Bench,虽然效率高,但是功能比较简单,不太适合本次压测场景,另外Jmeter能更好的利用压测机的多 ...

  5. 2.4 Windows驱动开发:内核字符串拷贝与比较

    在上一篇文章<内核字符串转换方法>中简单介绍了内核是如何使用字符串以及字符串之间的转换方法,本章将继续探索字符串的拷贝与比较,与应用层不同内核字符串拷贝与比较也需要使用内核专用的API函数 ...

  6. 3.2 DLL注入:远程APC异步注入

    APC(Asynchronous Procedure Call)异步过程调用是一种Windows操作系统的核心机制,它允许在进程上下文中执行用户定义的函数,而无需创建线程或等待OS执行完成.该机制适用 ...

  7. CE修改器入门:查找多级指针

    本关是第6关的加强版,CE 6.X 教程中的4级指针比5.X的要简单些.多级指针就像玩解谜游戏一样,谜团不只一个,盒子中还有盒子.这里面是4级指针,游戏中也有比如8级指针,12级指针等等,思路都是一样 ...

  8. 深入浅出Java多线程(三):线程与线程组

    「引言」 大家好,我是你们的老伙计秀才!今天带来的是[深入浅出Java多线程]系列的第三篇内容:线程与线程组.大家觉得有用请点赞,喜欢请关注!秀才在此谢过大家了!!! 在现代软件开发中,多线程编程已成 ...

  9. Spring一套全通2—工厂高级

    百知教育 - Spring系列课程 - 工厂高级特性 第十章.对象的生命周期 1. 什么是对象的生命周期 指的是一个对象创建.存活.消亡的一个完整过程 2. 为什么要学习对象的生命周期 由Spring ...

  10. Windows10安装Apache2.4.54并配置PHP5.6.40/PHP8.1.11

    环境 Windows 10 Apache2.4.54 PHP5.6.40/PHP8.1.11 安装Microsoft Visual C++ 下载地址:https://learn.microsoft.c ...