django2.2-django的简单使用、html表单的提交方法、CSRF令牌用法、request对象的基本方法

系列文章目录

一、django的简单使用

1. 配置模板文件夹

在项目的根目录(即manage.py所在的目录)下,手动创建一个templates文件夹,用来存放模板文件,即html文件。

然后打开settings.py文件,找到TEMPLATES配置项,将里面的'DIRS':[]改为'DIRS': [os.path.join(BASE_DIR, 'templates')],用来指明templates所在的路径,其中,BASE_DIR是一个常量,保存着项目的根目录。

2. 配置路由

在app目录下的urls.py文件中,导入app中的views.py文件,然后找到urlpatterns列表,将path('url的路径部分/', views.视图函数名称)追加进去即可。比如:

from django.contrib import admin
from django.urls import path
# 导入视图
from app01 import views

urlpatterns = [
    path('admin/', admin.site.urls),
    # 配置路由
    path('index/', views.index)
]

第7行中已经写好的路由,是用来打开django管理后台的,通过浏览器打开,就会出现一个登录页面,但暂时还不能使用。

3. 编写视图

  • 基本用法:

    在app目录下的views.py文件中,写入一下内容。然后打开127.0.0.1:8000/index/,会在页面呈现“你好,世界!”。

    from django.http import HttpResponse
    
    # Create your views here.
    def index(request):  # 函数名只需见名知意即可
        return HttpResponse("你好,世界!")
    

    参数request是一个对象,存放着请求相关的所有数据。必需传入视图函数中。

    返回值HttpResponse('字符串')用来返回字符串,在html页面中,字符串会被直接放到body中。

    除了HttpResponse()方法,还有下面两个常用方法需要记住。

  • 返回html页面:

    render(request,'html模板',传递给模板的的字典数据)方法,用来返回html页面,字典参数是可选的。

    该方法需要导入:from django.shortcuts import render

  • 重定向:

    redirect('指定的url')用来重定向,比如在注册完成后跳转到首页。如果只是在本网站内部跳转,可以只写路径部分。

    该方法需要导入:from django.shortcuts import redirect

二、html表单的提交方法

  • 表单标签的action属性:

    action属性用来规定当提交表单时,将表单数据发往何处。可接受的值为:

    1. 不写任何值,默认向当前url提交数据;
    2. 完整的url,则向指定的url提交数据;
    3. 只写一个后缀,会用当前网站的协议、域名和端口填补缺少的部分。
  • 表单标签的method属性:

    method属性用来规定使用何种方法提交表单数据,它有两个值可选:

    1. post:使用post方式,它会将数据放在请求体中提交给目标url,对数据没有长度限制。该方法通常用来提交数据。
    2. get:使用get方式,它会将数据放在url中提交给目标url,用户可以在地址栏直接看到提交的数据(包括密码),并且url有长度限制,提交的数据的长度也因此被限制。该方法通常用于请求数据。

三、CSRF令牌用法

在html的form标签内,需要加入CSRF令牌:{% csrf_token %},否则会报403错误。这是为了安全所做的必要措施。所有针对内部 URL 的 POST 表单都应该使用 {% csrf_token %}模板标签。它的原理会在以后讲解。

四、request对象的基本方法

  • request.method:返回请求方式,并且是全大写的形式。如:POST、GET等。

  • request.POST:获取POST方式提交的数据(不包含文件),返回字典,可以使用get('键')方法取出值。

    但如果值是一个列表(一个键有多个值,会组包为列表类型),则get()只会取出列表的最后一个元素,此时,应该使用getlist('键')取出完整的列表值。

  • request.GET:获取GET方式提交的数据,返回的也是字典,用法跟上面的POST方法一样。

下一篇

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花_城

你的鼓励就是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值