路飞学城Python-Day136
序号
|
方法
|
描述
|
1
|
GET
|
请求指定的页面信息,并返回实体主体。
|
2
|
HEAD
|
类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
|
3
|
POST
|
向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
|
4
|
PUT
|
从客户端向服务器传送的数据取代指定的文档的内容。
|
5
|
DELETE
|
请求服务器删除指定的页面。
|
6
|
CONNECT
|
HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
|
7
|
OPTIONS
|
允许客户端查看服务器的性能。
|
8
|
TRACE
|
回显服务器收到的请求,主要用于测试或诊断。
|
- M 代表模型(Model): 负责业务对象和数据库的关系映射(ORM)。
- T 代表模板 (Template):负责如何把页面展示给用户(html)。
- V 代表视图(View): 负责业务逻辑,并在适当时候调用Model和Template。除了以上三层之外,还需要一个URL分发器,它的作用是将一个个URL的页面请求分发给不同的View处理,View再调用相应的Model和Template,MTV的响应模式如下所示
- 简述Django请求生命周期
- 提高了代码的复用性,可以使用面向对象的技术,比如Mixin(多继承)
- 可以用不同的函数针对不同的HTTP方法处理,而不是通过很多if判断,提高代码可读性
- 谈一谈你对ORM的理解
- rest_framework 认证组件的流程
- 什么是中间件并简述其作用
- django中怎么写原生SQL
- F和Q的作用
- values和value_list区别
- 如何使用django orm批量创建数据
- Django中的请求生命周期
- http访问流程
- 命令migrate 和makemigrations的差别
- 视图函数中,接收的请求对象常用方法和属性有哪些
- 常用视图响应的方式是什么?
- HTTP响应常见状态码分类
分类
|
分类描述
|
1**
|
信息,服务器收到请求,需要请求者继续执行操作
|
2**
|
成功,操作被成功接收并处理
|
3**
|
重定向,需要进一步的操作以完成请求
|
4**
|
客户端错误,请求包含语法错误或无法完成请求
|
5**
|
服务器错误,服务器在处理请求的过程中发生了错误
|
- 路由匹配原则是什么?
- 缓存系统类型有哪些
- 解决跨域的常用方式是什么?
- 信号的作用是什么?
- Django的Model的继承有几种形式,分别是什么
- Django中查询queryset时什么情况下用Q
- Django中想验证表单提交是否格式正确需要用到Form中的哪个函数
- orm如何取消级联
- Django中如何读取和保存session,整个session的运行机制是什么
- 简述Django对http请求的执行流程
- Django中当用户登录到A服务器进入登陆状态,下次被nginx代理到B服务器会出现什么影响
- 跨域请求Django是如何处理的
- 查询集的两大特性?什么是惰性执行
- 查询集返回的列表过滤器有哪些
- 如何获取django urlpatterns里面注册的所有url?
- django路由系统中include是干嘛用的?
- django2.0中的path与django1.xx里面的url有什么区别?
- urlpatterns中的name与namespace有什么作用?你是如何使用的?
- 如何根据urlpatterns中的name反向生成url,这样反向生成url的方式有几种?
- 如何给一个字段设置一个主键?
- blank=True与null=True有什么区别?
- 如何设置一个带有枚举值的字典?
- DateTimeField类型中的auto_now与auto_now_add有什么区别
- values()与values_list()有什么区别?
- selected_related与prefetch_related有什么区别?
- 当删除一个外键的时候,如何把与其关联的对应关系删除
- class Meta中的元信息字段有哪些
- 多对多关联的表,如何插入数据?如何删除数据?如何更新数据?
- django的M2M关系,如何手动生成第三张表?
- 如何使用原生mysql?
- 在Django中,服务端给客户端响应信息有几种方式?分别是什么?
- 在视图函数中,常用的验证装饰器有哪些?
- 如何给一个视图函数加上缓存?
- web框架的本质是什么?
本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端- 什么是MVC、什么是MTV?
MVCWeb服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的、松耦合的方式连接在一起,模型负责业务对象与数据库的映射(ORM),视图负责与用户的交互(页面),控制器接受用户的输入调用模型和视图完成用户的请求,其示意图如下所示MTVDjango的MTV模式本质上和MVC是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同,Django的MTV分别是值:- M 代表模型(Model): 负责业务对象和数据库的关系映射(ORM)。
- T 代表模板 (Template):负责如何把页面展示给用户(html)。
- V 代表视图(View): 负责业务逻辑,并在适当时候调用Model和Template。
除了以上三层之外,还需要一个URL分发器,它的作用是将一个个URL的页面请求分发给不同的View处理,View再调用相应的Model和Template,MTV的响应模式如下所示
- 创建Django工程、Django app、以及运行的命令
基于pycharm的可以实现创建django项目和appdjango-admin.py startproject mysitepython manage.py startapp blogpython manage.py runserver 8080python manange.py makemigrationspython manange.py migrate
- Django App的目录结构
- 简述一下Django声明周期
- Django 获取用户前端请求数据的几种方式
@get和@post使用1:在views模板下编写测试函数(记得在urls.py文件中进行相应配置)2:将刚刚封装的函数所在模板引入views.py3:使用@get进行拦截@params,response_success,response_failure使用第一种@login_requireddef simple_view(request):return HttpResponse()1232 通过对基于函数视图或者基于类视图使用一个装饰器实现控制:@login_required(MyView.as_view())13 通过覆盖mixin的类视图的dispatch方法实现控制
- 描述下 自定义simple_tag
自定义filter:{{ 参数1|filter函数名:参数2 }}# 1.可以与if标签来连用# 2.自定义时需要写两个形参# simple_tag:{% simple_tag函数名 参数1 参数2 %}# 1.可以传多个参数,没有限制# 2.不能与if标签来连用@register.simple_tagdef multi_tag(x,y):return x*y- 什么是Cookie、如何获取、设置Cookie
会话跟踪技术,保留用户Cookie是由服务器创建,然?后通过响应发送给客户端?的一个键值对。具体一个浏览器针对一个服务器存储的key-value({ })response.set_cookie("is_login",True)request.COOKIES.get("is_login")
- 什么是session,与cookie的对比、设置、获取、清空session
Session是服务器端技术,利用这个技术,服务器在运行时可以 为每一个用户的浏览器创建一个其独享的session对象,由于 session为用户浏览器独享,所以用户在访问服务器的web资源时 ,可以把各自的数据放在各自的session中,当用户再去访问该服务器中的其它web资源时,其它web资源再从用户各自的session中 取出数据为用户服务。request.session["is_login"] = Trueis_login = request.session.get("is_login")request.session.flush()
- 什么是CSRF,及防范方式
* 启用中间件* post请求* 验证码* 表单中添加{%csrf_token%}标签
- django 中间件生命周期
- get请求和post请求的区别
*GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditBook?name=test1&id=123456. POST方法是把提交的数据放在HTTP包的请求体中.*GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.*GET与POST请求在服务端获取请求数据方式不同
- 图书管理系统的表结构是怎么设计的?
- 图书管理系统路由系统你用到了name了吗? 为什么要使用呢?
- 图书管理系统的模板你是怎么用的? 重复的代码怎么解决?
- MVC和MTV分别是什么?
MVCWeb服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的、松耦合的方式连接在一起,模型负责业务对象与数据库的映射(ORM),视图负责与用户的交互(页面),控制器接受用户的输入调用模型和视图完成用户的请求,其示意图如下所示MTVDjango的MTV模式本质上和MVC是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同,Django的MTV分别是值:- M 代表模型(Model): 负责业务对象和数据库的关系映射(ORM)。
- T 代表模板 (Template):负责如何把页面展示给用户(html)。
- V 代表视图(View): 负责业务逻辑,并在适当时候调用Model和Template。
除了以上三层之外,还需要一个URL分发器,它的作用是将一个个URL的页面请求分发给不同的View处理,View再调用相应的Model和Template,MTV的响应模式如下所示- WSGI / uwsgi/ uWSGI区分
#WSGI:# web服务器网关接口,是一套协议。用于接收用户请求并将请求进行初次封装,然后将请求交给web框架# 实现wsgi协议的模块:# 1.wsgiref,本质上就是编写一个socket服务端,用于接收用户请求(django)# 2.werkzeug,本质上就是编写一个socket服务端,用于接收用户请求(flask)#uwsgi:# 与WSGI一样是一种通信协议,它是uWSGI服务器的独占协议,用于定义传输信息的类型#uWSGI:# 是一个web服务器,实现了WSGI协议,uWSGI协议,http协议,- 如何使用django加密
Django 内置的User类提供了用户密码的存储、验证、修改等功能,默认使用pbkdf2_sha256方式来存储和管理用的密码。django通过setting.py文件中的PASSWORD_HASHERS来设置选择要使用的算法,列表的第一个元素 (即settings.PASSWORD_HASHERS[0]) 会用于储存密码, 所有其它元素都是用于验证的哈希值,它们可以用于检查现有的密码。意思是如果你打算使用不同的算法,你需要修改PASSWORD_HASHERS,来将你最喜欢的算法在列表中放在首位。一个settings中的Password_hashers看起来是这样的:PASSWORD_HASHERS = ('django.contrib.auth.hashers.PBKDF2PasswordHasher','django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher','django.contrib.auth.hashers.BCryptSHA256PasswordHasher','django.contrib.auth.hashers.BCryptPasswordHasher','django.contrib.auth.hashers.SHA1PasswordHasher','django.contrib.auth.hashers.MD5PasswordHasher','django.contrib.auth.hashers.CryptPasswordHasher',)具体的密码生成以及验证实现from django.contrib.auth.hashers import make_password,check_passwordpwd='4562154'mpwd=make_password(pwd,None,'pbkdf2_sha256') # 创建django密码,第三个参数为加密算法pwd_bool=check_password(pwd,mpwd) # 返回的是一个bool类型的值,验证密码正确与否Django之密码加密通过django自带的类库,来加密解密很方便,下面来简单介绍下;导入包:from django.contrib.auth.hashers import make_password, check_password从名字就可以看出来他们的作用了。一个是生成密码,一个是核对密码。例如:make_password("123456")得到结果:u'pbkdf2_sha25615000MAjic3nDGFoi$qbclz+peplspCbRF6uoPZZ42aJIIkMpGt6lQ+Iq8nfQ='另外也可以通过参数来生成密码:>>> make_password("123456", None, 'pbkdf2_sha256')校验:校验就是通过check_password(原始值, 生成的密文)来校验密码的。>>> check_password("123456","pbkdf2_sha25615000MAjic3nDGFoi$qbclz+peplspCbRF6uoPZZ42aJIIkMpGt6lQ+Iq8nfQ=")True
- 解释blank和null
blank设置为True时,字段可以为空。设置为False时,字段是必须填写的。字符型字段CharField和TextField是用空字符串来存储空值的。如果为True,字段允许为空,默认不允许。null设置为True时,django用Null来存储空值。日期型、时间型和数字型字段不接受空字符串。所以设置IntegerField,DateTimeField型字段可以为空时,需要将blank,null均设为True。如果为True,空值将会被存储为NULL,默认为False。如果想设置BooleanField为空时可以选用NullBooleanField型字段。一句话概括* null 是针对数据库而言,如果 null=True, 表示数据库的该字段可以为空。NULL represents non-existent data.* blank 是针对表单的,如果 blank=True,表示你的表单填写该字段的时候可以不填。比如 admin 界面下增加 model 一条记录的时候。直观的看到就是该字段不是粗体
- QueryDict和dict区别
在HttpRequest对象中, GET和POST属性是django.http.QueryDict类的实例。QueryDict类似字典的自定义类,用来处理单键对应多值的情况。在 HttpRequest 对象中,属性 GET 和 POST 得到的都是 django.http.QueryDict 所创建的实例。这是一个django 自定义的类似字典的类,用来处理同一个键带多个值的情况。在 python 原始的字典中,当一个键出现多个值的时候会发生冲突,只保留最后一个值。而在 HTML 表单中,通常会发生一个键有多个值的情况,例如 <select multiple> (多选框)就是一个很常见情况。request.POST 和request.GET 的QueryDict 在一个正常的请求/响应循环中是不可变的。若要获得可变的版本,需要使用.copy()方法。django QuerySet对象转换成字典对象>manage.py shell>>> from django.contrib.auth.models import User>>> from django.forms.models import model_to_dict>>> u = User.objects.get(id=1)>>> u_dict = model_to_dict(u)>>> type(u)<class 'django.contrib.auth.models.User'>>>> type(u_dict)<type 'dict'>1.QueryDict.__init__(query_string=None, mutable=False, encoding=None)这是一个构造函数,其中 query_string 需要一个字符串,例如:>>> QueryDict('a=1&a=2&c=3')<QueryDict: {'a': ['1', '2'], 'c': ['3']}>
路飞学城Python-Day136的更多相关文章
- 路飞学城—Python爬虫实战密训班 第三章
路飞学城—Python爬虫实战密训班 第三章 一.scrapy-redis插件实现简单分布式爬虫 scrapy-redis插件用于将scrapy和redis结合实现简单分布式爬虫: - 定义调度器 - ...
- 路飞学城—Python爬虫实战密训班 第二章
路飞学城—Python爬虫实战密训班 第二章 一.Selenium基础 Selenium是一个第三方模块,可以完全模拟用户在浏览器上操作(相当于在浏览器上点点点). 1.安装 - pip instal ...
- 路飞学城Python爬虫课第一章笔记
前言 原创文章,转载引用务必注明链接.水平有限,如有疏漏,欢迎指正. 之前看阮一峰的博客文章,介绍到路飞学城爬虫课程限免,看了眼内容还不错,就兴冲冲报了名,99块钱满足以下条件会返还并送书送视频. 缴 ...
- 路飞学城-Python开发集训-第3章
学习心得: 通过这一章的作业,使我对正则表达式的使用直接提升了一个level,虽然作业完成的不怎么样,重复代码有点多,但是收获还是非常大的,有点找到写代码的感觉了,遗憾的是,这次作业交过,这次集训就结 ...
- 路飞学城-Python开发集训-第1章
学习体会: 在参加这次集训之前我自己学过一段时间的Python,看过老男孩的免费视频,自我感觉还行,老师写的代码基本上都能看懂,但是实际呢?....今天是集训第一次交作业的时间,突然发现看似简单升级需 ...
- 路飞学城-Python开发集训-第4章
学习心得: 学习笔记: 在python中一个py文件就是一个模块 模块好处: 1.提高可维护性 2.可重用 3.避免函数名和变量名冲突 模块分为三种: 1.内置标准模块(标准库),查看所有自带和第三方 ...
- 路飞学城-Python开发集训-第2章
学习心得: 这章对编码的讲解超级赞,现在对于编码终于有一点认知了,但还没有大彻大悟,还需要更加细心的琢磨一下Alex博客和视频,以前真的是被编码折磨死了,因为编码的问题而浪费的时间很多很多,现在终于感 ...
- 路飞学城-Python开发-第二章
''' 数据结构: menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村':{ '爱奇艺':{}, '汽车之家' ...
- 路飞学城-Python开发-第三章
# 数据结构: # goods = [ # {"name": "电脑", "price": 1999}, # {"name&quo ...
- 路飞学城-Python开发-第一章
# 基础需求: # 让用户输入用户名密码 # 认证成功后显示欢迎信息 # 输错三次后退出程序 username = 'pandaboy' password = ' def Login(username ...
随机推荐
- Unity 利用FFmpeg实现录屏、直播推流、音频视频格式转换、剪裁等功能
目录 一.FFmpeg简介. 二.FFmpeg常用参数及命令. 三.FFmpeg在Unity 3D中的使用. 1.FFmpeg 录屏. 2.FFmpeg 推流. 3.FFmpeg 其他功能简述. 一. ...
- Python 实现把 .cvs 文件保存为 Excel 文件
# 导入可以把 CVS 转换为 Excel 的外部模块 import pandas as pd # 读出 csv 文件的内容 csv = pd.read_csv('Data.csv', encodin ...
- html绑定点击事件传值
1.方法1function radioSelect(event){ var valueRadio=event.value; if(valueRadio =='目的口岸'){ return '目的口岸' ...
- nyoj 547 优先队列
#include<stdio.h> #include<string.h> #include<queue>//水杯盛水问题,用优先队列不断从最小的边缘开始 using ...
- H - Can you answer these queries? ( POJ - 3264 )
H - Can you answer these queries? HDU - 4027 思路: 一眼思路:线段树区间修改,区间查询. 发现bug:区间的sqrt无法实现,所以还是相当于对区间的每 ...
- list转map工具类,根据指定的字段分组
import org.apache.log4j.Logger; import java.lang.reflect.Method;import java.util.ArrayList;import ja ...
- Object对象具体解释(一)之toString
Object作为Java中超然的存在.当中定义了一切对象都共同拥有的方法. 特点: 1. java.lang包在使用的时候无需显示导入.编译时由编译器自己主动导入. 2. Object类是类层次结构的 ...
- Spark MLlib之线性回归源代码分析
1.理论基础 线性回归(Linear Regression)问题属于监督学习(Supervised Learning)范畴,又称分类(Classification)或归纳学习(Inductive Le ...
- fputs与fgets
1. fputs 函数名: fputs 功 能: 送一个字符到一个流中 用 法: int fputs(char *string, FILE *stream); 说明: fputs是一 ...
- 基于UEFI和GPT模式下U盘安装windows8.1和Linux双启动教程
首先作以下准备: 1.一个8G以上的U盘,用的时候会格式化,建议为空 2.分区助手软件,官网下载链接 3.一个linux系统,这里用同学推荐的Fedora 26,官网下载链接 4.rufus 创建U盘 ...