系列文章目录
一、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属性用来规定当提交表单时,将表单数据发往何处。可接受的值为:
- 不写任何值,默认向当前url提交数据;
- 完整的url,则向指定的url提交数据;
- 只写一个后缀,会用当前网站的协议、域名和端口填补缺少的部分。
-
表单标签的method属性:
method属性用来规定使用何种方法提交表单数据,它有两个值可选:
- post:使用post方式,它会将数据放在请求体中提交给目标url,对数据没有长度限制。该方法通常用来提交数据。
- 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方法一样。