首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

web框架之初识Django

其类型有基于请求的和基于组件的两种框架。 web框架的功能其实就是网站的socket服务端中负责接收请求,并将请求分发到各功能程序,并将请求的处理结果和HTML页面返回给用户浏览器。...下面我们借助第三方模块wsgiref(wsgiref模块内部封装了socket,可以将http数据封装成一个大字典,方便调用。该模块也是flask的启动源码)实现请求的处理。...将http数据全部提前处理成了字典的形式 供调用者使用 :param response: 响应相关的所有数据 :return: 给前端真正的数据 """ # print...1.4动态网页与静态网页 动态网页指的是html页面获取到的数据是从后端动态获取到的;静态网页指页面上的数据是写死的。...2.2.1两种方式创建Django项目的特点 使用pycharm创建Django项目软件会自动创建一个APP,并会创建templates文件夹,配置文件中也会帮你将templates的路径写好,也会将你的

72731

Django的设计模式

传统的MVC MVC代表Model-View-Controller(模型-视图-控制器)模式 M(模型层):主要对数据库层的封装 V(视图层):用于向用户展示数据 C(控制层):用于处理用户请求、获取数据...模板层):负责呈现内容到浏览器 V(视图层):核心,负责接受请求、获取数据、返回结果 什么是模板?...模板是可以根据字典数据动态变化的HTML网页 模板可以根据视图中传递的字典数据动态生成相应的HTML TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates...t = loader.get_template("模板名称") # 2.将t转成HTML字符串 html = t.render(字典数据) # 3.用响应对象将转换的字符串内容返回给浏览器 return...> 处理器使用率: {{ CPU_Used }} 模板的变量 可以传到模板中的数据类型 注意以下调用方法不是对应类型的调用方法,只是告诉你有这些调用方法 数据类型 调用方法

50410
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    django中url路由配置及渲染方式

    (request): /*request用户的请求 */ return HttpResponse(‘hello,欢迎来到django...)额外参数,是字典类型,传递给view name     :(可有可无)url名字 4、在url中捕获参数    尖括号   可以捕获参数,传递给视图   本来捕获的值是字符串   ...使用时,首先要导入进来 form django.url import re_path   参数跟path里相同   下面看正则表达式的方法用什么捕获方式 第一种是分组的,在视图中根据参数名传参 re_path...-9]|1[0-2]/',plan),   \d\d\d\d与\d{4}含义相同,都是四位整数 7.主路由分配给分路由     如果所有是url都在主路由下配置,那么对于检查和维护修改都会带来不便,因此我们需要将主路由分配给各个...,将主路由分给teacher.url path(‘teacher/’,include('teacher.urls')),  在teacher-APP中,创建urls.py(因为新建的APP没有自带url.py

    3.1K20

    【Django】 Python Web 框架基础

    ,所有的动态路径必须先走该文件进行匹配 settings.py Django 项目的配置文件,此配置文件中的一些全局变量将为 Django 框架的运行传递一些参数 setting.py 配置文件,启动服务时自动调用.../ BASE_DIR 用于绑定当前项目的绝对路径(动态计算出来的), 所有文件都可以依懒此路径 DEBUG 用于配置Django项目的启动模式, 取值: True 表示开发环境中使用 调试模式(用于开发中...语法: 类型:自定义名> 作用:若转换器类型匹配到对应类型的数据,则将数据按照关键字传参的方式传递给视图函数 转换器 效果 案例 str 匹配除了 '/' 之外的非空字符串 "v1/users/...name="uname"> GET 请求方式中,如果有数据需要传递给服务器,通常会用查询字符串 (Query String) 传递 【注意:不要传递敏感数据】 URL 格式: xxx?...,一般用于向服务器提交大量数据 客户端通过表单等 POST 请求将数据传递给服务器端,如: 姓名:<input type

    2.1K20

    被解放的姜戈04 各取所需

    我们在庄园疑云中讲到了服务器上的数据。当时我们是用手动的方式,直接在数据库插入数据。我们将允许客户向服务器传递数据。 表格是客户向服务器传数据的经典方式。...我们先会看到传统的表格提交,然后了解Django的表格对象。 ? “我可不做赔本的买卖”,庄主对姜戈说。 html表格 HTTP协议以“请求-回复”的方式工作。客户发送请求时,可以在请求中附加数据。...HTML表格的目的是帮助用户构成HTTP请求,把数据用GET或者POST的方法,传递给某一URL地址。...随后,我们从数据库中读出所有的对象,并传递给模板。...Django提供的数据对象可以大大简化这一过程。该对象用于说明表格所预期的数据类型和其它的一些要求。这样Django在获得数据后,可以自动根据该表格对象的要求,对数据进行处理。

    1.1K50

    02.Django基础二之URL路由系统

    request,和wsgiref的environ类似,就是请求信息的所有内容 urlpatterns = [ url(正则表达式, views视图函数,参数,别名), ]   注意:   Django...(r'^articles/(\d{4})/$', views.year_archive),#year_archive(request,n),小括号为分组,有分组,那么这个分组得到的用户输入的内容,就会作为对应函数的位置参数传进去...换句话讲,所有的请求方法 —— 同一个URL的POST、GET、HEAD等等 —— 都将路由到相同的函数。...]   在这个例子中,对于/blog/2005/请求,Django 将调用views.year_archive(request, year='2005', foo='bar')。     ...你填充你的URLconf,然后可以双向使用它: 根据用户/浏览器发起的URL 请求,它调用正确的Django 视图,并从URL 中提取它的参数需要的值。

    1.5K20

    python-Django-表单基础概念

    简介表单是Web应用程序中最常用的组件之一,它允许用户提交数据并与Web应用程序交互。在Django中,表单是由Django表单框架处理的,它允许您轻松地创建HTML表单并处理表单数据。...在模板中显示表单要在模板中显示表单,您需要将表单类实例化,并将其传递到模板上下文中。然后,在模板中使用Django模板语言(DTL)来呈现表单字段。...这是Django防止跨站请求伪造(CSRF)攻击的一种机制,它生成一个隐藏的表单字段,其中包含一个随机的令牌值。在处理表单提交时,Django将检查令牌是否有效。...处理表单数据在Django中,表单数据是由视图函数处理的。当用户提交表单时,Django将请求发送到视图函数,并将表单数据作为POST请求参数传递给函数。...如果请求的HTTP方法不是POST,则说明这是第一次请求该页面,我们将表单类实例化,并将其传递到渲染模板的上下文中。

    1.2K51

    测试开发进阶(二十四)

    最原始设计 GET 从数据库中获取所有的项目信息 将数据库模型实例转化为字典类型「Json数组」「嵌套字典的列表」 注意:JsonResponse第一个参数默认只能为dict字典,如果要设为其他类型,...: # 1.从数据库中获取所有的项目信息 project_qs = Projects.objects.all() # 2.将数据库模型实例转化为字典类型「...POST 从前端获取json格式的数据,转化为Python中的类型 为了严谨性,这里需要做各种复杂的校验 比如:是否为json,传递的项目数据是否符合要求,有些必传参数是否携带 向数据库中新增项目 将模型类转化为字典...原始设计小结 创建接口的任务 校验用户数据 将请求的数据(如json格式)转换为模型类对象 反序列化 将其他格式(json,xml等)转换为程序中的数据类型 将json格式的字符串转换为Django中的模型类对象...操作数据库 将模型类对象转换为响应的数据(如json格式) 序列化 将程序中的数据类型转换为其他格式(json,xml等) 例如将Django中的模型类对象转换为json字符串 数据增删改查流程 增

    1.1K50

    Django之视图层与模板层

    ,django会将接收到的请求 体数据存放于HttpRequest.body属性中,因为该属性的值为Bytes类型,所以通常情况下直接处理Bytes、并从中提 取有用数据的操作是复杂而繁琐的,好在django...2:如果表单属性method='POST',那么在提交表单时,表单内的所有数据都会存放于请求体中,在发送给django 后会封装到request.body里,此时django为了方便我们提取数据,会...从上面可以看到,除 CONTENT_LENGTH 和 CONTENT_TYPE 之外,HTTP协议的请求头数据转换为 META 的键 时, 都会 1、将所有字母大写 2、将单词的连接符替换为下划线...,它的默认数据类型只有字典,当将safe参数置为False时,可以序列化其它数据类型,它继承了HttpResponse类,可以对请求做出响应。...,'test.html',{'n':n}) # 第二种,使用locals()会将当前所在名称空间中所有的名字全部传递给html页面 2.5模板的继承和导入 在实际开发中,模板文件彼此之间可能会有大量的冗余代码

    9.2K10

    Django MVT之V

    这个属性是可写的,可以通过修改它来修改访问表单数据使用的编码,接下来对属性的任何访问将使用新的encoding值。 GET:QueryDict类型对象,类似于字典,包含get请求方式的所有参数。...POST:QueryDict类型对象,类似于字典,包含post请求方式的所有参数。 FILES:类似于字典的对象,包含所有的上传文件。...QueryDict对象 HttpRequest对象的GET和POST属性都是QueryDict类型的对象,该类型定义在django.http.QueryDict中。...无状态指一次用户请求时,浏览器、服务器无法知道之前这个用户做过什么,每次请求都是一次新的请求。...django默认将Session信息存储在当前连接数据库的django_session数据表中。 注: Session工作流程由Django框架自动完成。 Session的特点: 以键值对方式存储。

    1.9K20

    django之路由分组,反向解析,有名

    只要不混着用,有名分组和无名分组支持多个相同类型的传参  反向解析: 试想一个场景,你有200多个a标签,href都指向index/,有一天在urls里面index改为了new_index,那么你只能手动改变...伪静态 假装自己的路径是一个静态(数据写死的)文件的路径,其实你 是经过了视图函数处理,动态渲染页面 提高百度收藏你这个网页力度,当别人搜索你这个页面相关的内容 百度会优先展示你的页面...的区别(了解) 1.0里面的url对应django2.0里面re_path django2.0里面的path第一个是精准匹配(你怎么写的,我就怎么匹配) django1.0版本中匹配到的参数都是字符串类型...django2.0转换器(了解) 1.0版本的url和2.0版本的re_path分组出来的数据都是字符串类型 默认有五个转换器,感兴趣的自己可以课下去试一下   str...,也可以重定向到自己路由) django返回的数据都是HttpResponse对象 JsonResponse(返回json格式的数据) FBV与CBV   FBV:基于函数的视图

    1.6K10

    【Django】 开发:模板语言

    作用: 降低模块间的耦合度(解耦) MVC M 模型层(Model), 主要用于对数据库层的封装 V 视图层(View), 用于向用户展示结果 C 控制(Controller ,用于处理请求、获取数据...模板 Templates 什么是模板 模板是可以根据字典数据动态变化的html网页 模板可以根据视图中传递的字典数据动态生成相应的HTML网页。...,'模板文件名', 字典数据) Django 模板语言 模板的传参 模板传参是指把数据形成字典,传参给模板,为模板渲染提供数据 使用 loader 加载模板 t = loader.get_template...代码注入到受害用户浏览的网页上,从而达到攻击目的 危害:盗取用户信息,破坏网站正常运行等 分类: 反射型xss ​ 定义:发出请求时,XSS代码出现在URL中,作为输入提交到服务器端,服务器端解析后响应...t=alert(11) 后端接到查询字符串的值后,显示在页面中 存储型xss ​ 定义:提交的XSS代码会存储在服务器端(数据库,内存,文件系统等),其他用户请求目标页面时即被攻击

    3.3K10

    Django视图层之路由配置系统(urls)

    /articles/2005/03/ 请求将匹配列表中的第三个模式。               ...P[0-9]{2})/$', views.article_detail), ] 这个实现与前面的示例完全相同,只有一个细微的差别:捕获的值作为关键字参数而不是位置参数传递给视图函数。...换句话讲,所有的请求方法 —— 同一个URL的POST、GET、HEAD等等 —— 都将路由到相同的函数。 4 指定视图参数的默认值 有一个方便的小技巧是指定视图参数的默认值。...你填充你的URLconf,然后可以双向使用它: 根据用户/浏览器发起的URL 请求,它调用正确的Django 视图,并从URL 中提取它的参数需要的值。...')), #将访问路径以blog开头的路径分发到app1下的urls.py模块里进行路由映射 ]   这样在我们blog-app中的url中,存放所有关于blog的url分发工作。

    1.4K90

    后端框架学习-Django

    转化器 path转换器 类型:自定义名> 作用:若转换器类型匹配到对应类型的数据,则将数据按照关键字传参的方式传递给视图函数 path(‘page/int:page...参数=值&参数=值"\> + form表单中的method为get GET请求方法中,如果有数据需要传递给服务器,通常会使用查询字符串传递。...在该模式下依然存在控制层C,即主路由 Django模板层 模板层创建 模板:根据字典数据动态变化的html网页,根据视图中传递的字典数据动态生成相应的html页面 模板配置: 创建模板文件夹 ...重写,则按照重写效果显示 注意: 模板继承时,服务器的动态内容无法继承 url反向解析 代码中url的位置: 1.模板 超链接 form表单 form action 将表单中的数据用...:视图函数 分布式路由 Django中,主路由配置文件可以不处理用户具体路由,主路由配置文件的可以做请求的分发(分布式请求处理)。

    9.6K40

    Django模板语言与视图(view)

    当浏览器向服务端请求一个页面时,Django创建一个HttpRequest对象,该对象包含关于请求的元数据。...然后,Django加载相应的视图,将这个HttpRequest对象作为第一个参数传递给视图函数。 每个视图负责返回一个HttpResponse对象。   ...CBV版添加装饰器 类中的方法与独立函数不完全相同,因此不能直接将函数装饰器应用于类中的方法 ,我们需要先将其转换为方法装饰器。...GET              包含所有HTTP  GET参数的类字典对象 POST           包含所有HTTP POST参数的类字典对象 body            请求体,byte类型...属性:   django将请求报文中的请求行、头部信息、内容主体封装成 HttpRequest 类中的属性。 除了特殊说明的之外,其他均为只读的。

    3.4K20

    Django ORM

    目录 Django ORM ORM实操之数据库迁移 ORM实操之字段的修改 ORM实操之数据的增删改查 数据库同步 ORM创建表关系 Django请求生命周期流程图 路由匹配 无名分组 有名分组 反向解析...无名分组和有名分组反向解析 Django ORM ORM:对象映射关系程序 通过orm将编程语言的对象模型和数据库的关系模型建立映射关系,这样我们在使用编程语言对数据库进行操作的时候可以直接使用编程语言的对象模型进行操作就可以了...ps:如果inspectdb后不跟表名,那么就会将该数据库内的所有表反向解析成类(python语句) # 数据库里面已经有一些表,我们如何通过django orm操作?...,只有多对多关系表被单独创建出来 Django请求生命周期流程图 路由匹配 路由:通俗理解为除去ip和port之后的地址 在新版本Django2.x中,url的路由表示用path和re_path代替...re_path 定以了两个urls,它们是等效的,把文章的id(整数类型)传递给了视图。

    4.1K10

    SQL注入攻击与防御-第一章

    1.1概述 SQL注入是影响企业运营且破坏性最强的漏洞之一,它曾经几次在TOP10登顶,它会泄漏保存在应用程序数据库中的敏感信息,例如:用户名,口令,姓名,地址,电话号码以及所有有价值的信息。...在互联网中,数据库驱动的Web应用非常普遍,它们往往包含一个后台数据库和很多Web页面,在这些页面中包含了使用某种编程语言编写的服务器脚本,而这些脚本则能够根据Web页面与用户的交互从数据库提取特定的信息...SQL注入 SQL注入是一种将SQL代码插入或者添加到应用的输入参数中的攻击,之后再将这些参数传递给后台的SQL服务器并加以解析执行。...val=100'OR'1'='1 这次,PHP脚本构造并执行的SQL语句将忽略价格而返回数据库中的所有商品。这是因为修改了查询逻辑。添加的语句导致查询中的OR操作符永远返回值为真。从而出错。...答:不能,只要在将输入传递给动态创建的SQL语句之前未经过验证,就容易潜在的受到攻击,除非使用参数化查询和绑定变量。

    1.1K20

    使用AJAX获取Django后端数据

    使用Django服务网页时,只要用户执行导致页面更改的操作,即使该更改仅影响页面的一小部分,它都会将完整的HTML模板传递给浏览器。...如果AJAX请求是通过与后端其他位置相同的模板提供的,我们可以使用默认值“ same-origin”。这意味着,如果所请求的URL与提取调用来自同一站点,则将在请求中发送用户凭据。...BODY POST请求的目标是将数据发送到视图并更新数据库。 这意味着我们还需要在fetch调用中包含数据。...现在,我们可以通过其键访问数据。 一旦获得了请求中的数据,我们就可以执行用户希望启动AJAX请求的操作。这可能是创建模型的新实例或更新现有实例。...但是,如果我们没有正确设置视图,则可以在AJAX请求之外访问数据,并且不会像我们期望的那样将其呈现给用户。

    7.6K40
    领券