【视图概述】
-- Django中的视图主要用来接受Web请求,并做出响应。
-- 视图的本质就是一个Python中的函数
-- 视图的响应分为两大类
-- 以Json数据形势返回
-- 以网页的形势返回
-- 重定向到另一个网页
-- 错误视图(40X,50X)
-- 404视图 (页面没找到)
-- 400视图 (客户操作错误)
-- 500视图(服务器内部错误)
-- 自定义错误视图
-- setting中关闭Debug
-- 工程的templates文件夹下创建对应的错误文件
-- 例如:404.html
-- 视图响应过程
-- 浏览器输入
-- django获取信息并去掉ip:端口,剩下路径
-- urls 路由匹配
-- 视图响应
-- 回馈到浏览器
【url配置】
-- 配置流程
-- setting中指定根级url配置文件,对应的属性ROOT_URLCONF
-- urlpatterns
-- 一个url实例的列表,全在根配置搞定
-- 内部由url组成(正则匹配路径)
-- url(r'^Learn/',views.learn)
-- 导入其它url配置:
-- 在应用中创建urls.py文件,编写匹配规则
-- 在工程urls.py中进行导入
-- from django.conf.urls import include
-- urlpatterns = [ url(r'^xxx/',include('App.urls')) ]
-- url匹配正则注意事项:
-- 正则匹配时从上到下进行遍历,匹配到就不会继续向后查找了
-- 匹配的正则前方不需要加反斜线
--正则前需要加 (r)表示字符串不转义
-- 按照列表的书写顺序进行匹配的
-- 从上到下匹配,没有最优匹配的概念
-- 路由规则编写
-- 我们通常直接指定以 ^ 开头
-- 在结尾处直接添加反斜线 /
【获取url路径上的参数】
-- 如果需要从url中获取一个值,需要对正则加小括号
-- url(r'^grade/(\d+)$',views.getStudents),
-- 注意:url匹配中添加了 () 取参,在请求调用的函数中必须接收
-- def getStudents(request,classId):
-- 要获取url路径中的多个参数,那就添加多个括号,默认按顺序匹配路径名字
-- url(r'^now/(\d{4})/(\d+)/(\d+)$',views.get_now),
-- 匹配年月日:def get_now(request,year,month,day):
-- 参数也可以使用关键字参数
url(r'^now/(?P<year>\d+)/(?P<month>\d)+/(?P<day>\d+)', views.get_now),
创表,添加数据
-- locals()
-- 内置函数
-- 将局部变量,使用字典的方式进行打包
--key是变量名,value是 变量中存储的数据
加点击,a标签,或者js,获取某一个班级的学生
grade_list.html
grade_student_list.html
url反向解析
-- 在根urls中
-- url(r'^two/', include('Two.urls',namespace='second')),
-- 在子urls中
-- url(r'^hello/(\d+)',views.hello,name='sayhello'),
-- 在模板中使用
-- <a href="{% url 'second:sayhello' year=2017 %}">Hello</a>
--在视图中使用
-- HttpResponseRedirect(reverse('second:sayhello',kwargs={}))
-- kwargs是字典
HttpRequest
url: ....../haverequest/?hobby=coding&hobby=eating #传入hobby参数
通过 form 发送一个 post 请求,接收并显示出来
获取访问主机的IP
-- Request
-- 内置属性
-- method
-- path
-- GET
-- 类字典结构
-- 一个key允许对应多个值
-- get
-- getlist
-- POST
-- META
-- 各种客户端元信息
-- REMOTE_ADDR 远端访问IP