2-Django之三板斧
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。
- 在当前项目的根目录下面建立一个
templates文件夹,后续的html文件直接放在这个文件夹里面。- 找到
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之三板斧的更多相关文章
- Django路由层之路由分发 名称空间 虚拟环境 视图层之三板斧 JsonRsponse对象 request对象获取文件 FBV与CBV CBV源码剖析 模板层
目录 路由层之路由分发 路由层之名称空间 方式1:名称空间 方式2:别名不冲突即可 虚拟环境 pycharm创建虚拟环境 命令行形式创建虚拟环境 视图层之三板斧 HttpRsponse render ...
- spring mvc 实战化项目之三板斧
laravel实战化项目之三板斧 spring mvc 实战化项目之三板斧 asp.net mvc 实战化项目之三板斧 接上文希望从一张表(tb_role_info 用户角色表)的CRUD展开spri ...
- asp.net mvc 实战化项目之三板斧
laravel实战化项目之三板斧 spring mvc 实战化项目之三板斧 asp.net mvc 实战化项目之三板斧 接上文希望从一张表(tb_role_info 用户角色表)的CRUD展开asp. ...
- laravel实战化项目之三板斧
laravel实战化项目之三板斧 spring mvc 实战化项目之三板斧 asp.net mvc 实战化项目之三板斧 laravel是我工作10多年来见到的真正能称得上让phper从面条一样杂乱的代 ...
- centos安装Django之三:安装python
这是centos安装Django系列第三篇,安装python.centos系统已经自带了python2.6,但是它被系统很多程序所依赖,不建议删除.我们可以使用以下命令来查看我们使用的Python版本 ...
- Django之三种文件上传
方式一: 通过form表单提交到后台 前端: <!DOCTYPE html> <html lang="en"> <head> <meta ...
- django之三剑客、静态文件配置、请求响应对象、数据库操作
三剑客 from django.shortcuts import render,HttpResponse,redirect HttpResponse # 返回字符串 render(response, ...
- centos安装Django之四:安装Django
前面我们学会了centos安装Django之一:安装openssl和centos安装Django之二:pip3安装,centos安装Django之三:安装python,现在我们就可以安装Django了 ...
- Flask入门request session cookie(二)
1 HTTP方法分类 1 GET 浏览器告知服务器:只获取页面上的信息并发给我.这是最常用的方法. 2 HEAD 浏览器告诉服务器:欲获取信息,但是只关心消息头 .应用应像处理 GET 请求一样来处理 ...
- Django 学习笔记之三 数据库输入数据
假设建立了django_blog项目,建立blog的app ,在models.py里面增加了Blog类,同步数据库,并且建立了对应的表.具体的参照Django 学习笔记之二的相关命令. 那么这篇主要介 ...
随机推荐
- [转帖]AMD第四代宵龙 9174F 亮眼
https://www.amd.com/zh-hans/processors/epyc-9004-series#%E8%A7%84%E6%A0%BC 型号规格 型号 CPU 核心数量 线程数量 最 ...
- 记一次JSF异步调用引起的接口可用率降低
前言 本文记录了由于JSF异步调用超时引起的接口可用率降低问题的排查过程,主要介绍了排查思路和JSF异步调用的流程,希望可以帮助大家了解JSF的异步调用原理以及提供一些问题排查思路.本文分析的JSF源 ...
- R2M分布式锁原理及实践
作者:京东科技 张石磊 1 案例引入 名词简介: 资源:可以理解为一条内容,或者图+文字+链接的载体. 档位ID: 资源的分类组,资源必须归属于档位. 问题描述:当同一个档位下2条资源同时审批通过时, ...
- P9805 [POI2022~2023R1] ply
1st思路 贪心 当遇到左括号深度加一,可如果当前深度大于 \(H\) 时深度减二,并且 \(ans\) 加一.相当于进行一次翻转操作. 当遇到右括号深度减一,当深度小于零时深度加二,并且 \(ans ...
- MongoDB 选型介绍
什么是 MongoDB 前言 MongoDB 的主要特性 MongoDB 对比关系型数据库 MySQL 什么时候考虑 MongoDB 参考 什么是 MongoDB 前言 MongoDB 是一个开源.高 ...
- ansible使用,搭建mongo的replica-set小结
ansible 前言 常用到的指令 查看ip是否可用 执行 执行,查看日志输出 查看这个 playbook 的执行会影响到哪些 hosts 设置服务器免密登录 ansible了解 变量名的使用 pla ...
- 深入操作系统内核!细致剖析 MIT 6.S081 课程 Lab 2 : system calls - 1
本文细致的剖析了2021 FALL MIT 6.S081 课程的一项实验, Lab 链接 Lab: System calls (mit.edu) . 大家的点赞将会是我继续更新的巨大动力,对文中内容或 ...
- C# WinForm线程里操作控件
做winform程序,避免不了的要在线程里控制窗体上的控件,直接在子线程里操作控件会报错"线程间操作无效,从不是创建控件***的线程访问它". 解决方法: private void ...
- api接口调用
api接口调用 CURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP.FTP.TELNET等.最爽的是,PHP也支持 CURL 库.使用PHP的CURL 库可以简单和有效 ...
- C++ GDAL提取多时相遥感影像中像素随时间变化的数值数组
本文介绍基于C++语言GDAL库,批量读取大量栅格遥感影像文件,并生成各像元数值的时间序列数组的方法. 首先,我们来明确一下本文所需实现的需求.现在有一个文件夹,其中包含了很多不同格式的文件, ...