设为首页 加入收藏

TOP

python 学习笔记(十二)--Django 基本知识点小结(一)
2023-07-23 13:36:48 】 浏览:65
Tags:python 习笔记 十二 --Django

1.Django中的相应对象

构造函数格式:

HttpResponse(content=响应体,content_type=响应体数据类型,status=状态码)

作用:

向客户端浏览器返回相应,同时携带响应体内容。

参数:

--content:表示返回的内容。

--status_code:返回的HTTP响应状态码(默认为200)。

--content_type:指定返回数据的MIME类型(默认为“text/html”)。浏览器会根据这个属性,来显示数据。如果是text/html,那么就会解析这个字符串,如果是text/plain,那么就会显示一个纯文本。

响应头中常见的Content-Type:

-- text/html :默认的,html文件

--text/plain:纯文本

--text/css:css文件

--text/java script:js文件

--multipart/form-data:文件提交

--application/json:json传输

--application/xml:xml文件

2.GET处理

request.GET['参数名']  ##QueryDict

request.GET.get('参数名','默认值')

request.GET.getlist('参数名')

3.模板

(1)模板是可以根据字典数据动态变化的html网页。

(2)模板可以根据视图中传递的字典数据动态生成相应的HTML网页。

(3)创建模板文件夹,一般位于<项目名>/templates

(4)在settings.py中,TEMPLATES的配置项:

"BACKEND":指定模板的引擎。

"DIRS":模板的搜索目录(可以是一个或者多个)

"APP_DIRS":是否要在应用中的templates文件夹中搜索模板文件。

OPTIONS":有关模板的选项。

4.模板的加载

方案1 

通过loader获取模板,通过HttpResponse进行响应。注意是在视图函数中实现。

例如

from django.template import loader
#1 通过loader加载模板
t = loader.get_template("模板文件名")
#2 将t转换成HTML字符串
html = t.render(字典数据)
#3 用响应对象将转化的字符串内容返回给浏览器
return HttpResponse(html)

方案2,也是常用的方法

使用render(()直接加载并相应模板。注意是在视图函数中实现。

from django.shortcuts import render, get_object_or_404
return render(request, "模板文件名", 字典数据)

5.视图层与模板层之间的交互

(1).视图函数中,可以将Python变量封装到字典中,然后传递大模板。

例如

context = {
        "active_user": active_user,
        "group_list": group_list,
        "enable_backup_switch": 
        config.get("enable_backup_switch"),
    }
return render(request, "XXXX.html", context)

(2).模板中,我们可以用{{ 变量名 }}的语法,调用视图传进来的变量。

 6.模板的变量

(1)能传递到模板中的数据类型

str --字符串  int ---整型

list --数组  tuple --元组

dict--字典  func--方法

obj --类实例化的对象

(2)在模板中使用变量语法

--{{ 变量名 }}

--{{ 变量名.index }}  ---例如传递过来的变量是list

--{{ 变量名.key }} ---例如传递过来的变量是字典

--{{ 对象.方法 }}

--{{ 函数名 }}

7.模板过滤器

定义:在变量输出时对变量的值进行处理
作用:可以通过使用 过滤器 来改变变量的输出显示
语法:
{{ 变量名 | 过滤器1:可选参数1 | 过滤器2:可选参数2 ... }}

8.模板的继承

模板继承可以使父模板的内容重用,子模版直接继承父模板的全部内容并可以覆盖父模板中相应的块。

 语法--父模板中:

(1)定义父模板中的块block标签;

(2)标识出哪些在子模块中是允许被修改的;

(3)block标签:在父模板中定义,可以在子模版中覆盖,

语法--子模版中:

(1)继承模板extends 标签(写在模板文件的第一行)

例如 {% extends "base.html" %}

(2)子模版 重写父模板中的内容块

{% block block_name %}

子模版块用来覆盖父模板块中 block_name 块的内容

{% endblock block_name %}

9.代码中URL出现的位置

(1)模板【html】中的url

A.<a href='url'>超链接</a>

点击后,页面跳转至url

B.<from action = 'url' method = 'post'>

from 表单中的数据,用post方法提交至url

(2)视图函数中--302跳转,HttpResponseRedirect('url')

将用户地址栏中的地址跳转到url。

10.url反向解析

url反向解析是指在视图或模板中,用path定义的名称来动态查找或者计算出相应的路由。
path函数的语法
path(route,views,name="别名")
例如:
path('page',views.page_vies,name="page_url")
根据path中的'name='关键字传参给url确定了个唯一确定的名字,在模板
或视图中,可以通过这个名字反向推断出此url信息。
模板中使用,通过url标签实现地址的方向解析:
{% url '别名'%}
{% url '别名' '参数值1' '参数值2' %}

 在视图函数中使用,可调用django中的reverse方法进行反向解析。

from django.urls import reverse

reverse('别名',args=[],kwargs={})

11.静态文件配置

* 静态文件配置位于settings.py中。

配置静态文件的访问路径【配置默认存在】

# Static files (CSS, java script, Images)
STATIC_URL = "/static/"
STATIC_ROOT = os.path.join(BASE_DIR, "static")
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "common/sta
首页 上一页 1 2 3 4 5 6 下一页 尾页 1/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Web的8种(6+2)元素+常用定位方法 下一篇装饰器第1天

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目