django-入门基础
发布日期:2022-02-23 07:42:42 浏览次数:15 分类:技术文章

本文共 2195 字,大约阅读时间需要 7 分钟。

django基础入门

重点:url参数

视图可以理解为python的函数,视图中第一个参数固定是request。 作用就是接收请求返回响应。

url的设计要简单,可以用正则匹配 可以指定参数类型

例如 /test/<int>

url 参数 path()参数解释 path(“test/“, test_get, name="test_get") 第一个是url匹配规则,第二个是视图函数名字,第三个是url名称

include()针对模块化开发时使用,

比如一个项目中有两个模块1和2 1模块中要访问模块2中的url就要用path("hello", include(“1.urls“)) 代表在hello路径下包裹了1模块中的url

url与视图的关系。 path(“test/“, test_get, name="test_get") 浏览器通过匹配到test这个url规则找到它对应的视图函数在视图函数中会进行业务处理然后response返回给浏览器 一一对应的关系

重点 获取url中的参数

获取get参数

获取url中指定的参数

path(“article/
/“ views)
def views(request,month)    return HttpResponse(month)

 

获取get参数

url :http://127.0.0.1:8000/test/?name=五月天

?号后面是参数 对于这种传参用GET.get方法获取

def views(request)    name = request.GET.get("name", "") 相当于一个字典    return HttpResponse(name)

正则匹配url

url(r"^test/(?P
0?[1-9]?\d|100)/$", get_number, name="get_number")

重点:render()与render_to_string函数

def render_str(request):    templ_name = "index.html"    html = render_to_string(template_name=template_name)return HttpResponse(html)
def render_html(request)    return render(request,"index.html")

对比明显,render比render_to_string更简单节约代码,提高效率

render()与render_to_string都是在指定的文件夹下index.html的相对路径上去查找。

render()查找路径,从项目根目录-INSALLED-APPS-自己创建的模块。

视频问题容易让用户吐槽的问题12分左右。说是两者的区别居然讲的都是共同点

重点:

请求到响应的流程

不论是django项目还是Flask项目请求响应的流程是相同的,都是用户通过浏览器发送请求(url)给django/Flask内置的服务器,服务器根据url的匹配规则找到相应的视图函数,视图函数根据请求的内容进行业务处理,最后把处理之后的数据返回给浏览器,浏览器再展示给用户

request.method是获取方式信息例如,get,post等

获取请求头信息request.META

重点:重定向函数

redirect()重定向 快捷方式

redirect(‘no_data_404’ ) no_data_404重定向的视图名称 也可以直接写地址

视图def test(request)    return redirect("no_data_404")地址def test(request)    return redirect("hello/index")网络地址def test(request)    return redirect("www.imooc.com")

HttpResponseRedirect('hello/404/')---'hello/404/' 是重定向的url 后面也可以跟名字,如果跟视图名字需要加一个reverse参数

urldef test(request)    return HttpResponseRedirect(“url”)视图def test(request)    return HttpResponseRedirect(reverse=“views”)

重点,重写内置错误视图进行重写

1、重写内置错误要在生产模式 DEBUG=False下进行

2、只需要在url中配置handler500='test.views.page_500'无需写到urlpatterns中,且test.views.page_500是相对路径。

def page_500(request):    return HttpResponse("服务器正忙,请稍后")

不仅能返回页面文字,也可以返回给浏览器整个页面。当输入错误的服务端的内容错误前端返回的500错误就会显示‘服务器正忙,请稍后’

重点:实现类视图

类视图的好处:

 视图是一个可调用的对象,

可以结构化代码

可以利用继承混合重用代码

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载地址:https://blog.csdn.net/weixin_42781544/article/details/108096619 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【Python、Django】模糊查询
下一篇:【Python、文件】Python解析上传文件

发表评论

最新留言

很好
[***.229.124.182]2024年03月30日 02时11分03秒