主要用于返回字符串类型的数据
主要用于返回html文件并支持模板语法(django自带)
主要用于重定向,括号内可以是其他网站的全称,也可是自己网站的后缀
编写完成后不会经常修改的与html页面相关的文件
css文件、js文件、图片文件、第三方框架文件(bootstrap)等文件都可以称之为'静态文件'
在django中为静态文件单独开设一个文件夹存储 ,默认取名static文件夹
在static文件夹内建议根据功能的不同继续划分不同的文件
css文件夹 js文件夹 img文件夹 others文件夹
# 提交post请求,默认会报403 前期不需要过多考虑,直接去配置文件中注释一行即可 MIDDLEWARE = [ # 'django.middleware.csrf.CsrfViewMiddleware', ] # 一、get请求和post请求都会触发同一个视图函数login的运行 如何针对不同的请求执行不同的代码 get请求返回一个登录页面 post请求获取用户数据并校验 # 二、获取当前请求方式 request.method 返回的是纯大写的请求方法字符串 if request.method == 'POST': return HttpResponse('发送post请求成功') return render(request, 'login.html') # 默认让视图函数处理get请求 # 三、获取post请求提交的普通数据 request.POST 返回结果是一个QueryDict request.POST.get('username') request.POST.getlist('hobby') 注意:get方法会拿到值列表中最后一个元素,而不是整个列表 getlist方法会直接拿到整个值列表 # 四、如何获取url后面携带的数据 request.GET 结果是一个QueryDict 可以看成字典处理 request.GET.get('info') request.GET.getlist('cityList')
from django.shortcuts import render, HttpResponse, redirect # Create your views here. def login(request): print(request.method) if request.method == 'POST': username = request.POST.get('username') password = request.POST.get('password') print(username, password) return HttpResponse('提交成功') return render(request, 'login.html') def index(request): return render(request, 'index.html') def home(request): return HttpResponse('<br><h1 style="text-align:center">欢迎来到主界面</h1>') def go_home(request): return redirect('/home/')
from django.shortcuts import render, HttpResponse, redirect # Create your views here. def register(request): print(request.method) if request.method == 'POST': username = request.POST.get('username') password = request.POST.get('password') confirm_password = request.POST.get('confirm_password') print(username, password) if password == confirm_password: return HttpResponse('提交成功') else: return HttpResponse('前后密码不一致') return render(request, 'register.html') def index(request): return render(request, 'index.html') def home(request): return HttpResponse('<br><h1 style="text-align:center">欢迎来到主界面</h1>') def go_home(request): return redirect('/home/')