11 2018 档案

摘要:一、安装MongoDB 在安装MongoDB之前,应该先把MongoDB官方网站上下载下来,下载的地址如下: https://www.mongodb.com/download-center 下载完毕之后,双击安装包,进行安装,安装的顺序如下图所示: 安装完成之后,开始进入配置环节,首先我们要进入目录 阅读全文
posted @ 2018-11-27 21:40 _杨魏 阅读(170) 评论(0) 推荐(0)
摘要:一、什么是MongoDB MongoDB是一个基于分布式文件存储的数据库,由C++语言编写。旨在为web应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系型数据库的。 它和我们常用的关系型数据库的最大的区别就是 阅读全文
posted @ 2018-11-27 20:50 _杨魏 阅读(168) 评论(0) 推荐(0)
摘要:一、推导式套路 除了我们之前所学习的列表推导式和生成器表达式之外,还有字典推导式、集合推导式等等。 下面就是一个以列表推导式为例的推导式详细格式,同样适用于其他推导式。 二、列表推导式 例一:30以内所有能被3整除的数 例二:30以内所有能被3整除的数的平方 例三:找到嵌套列表中名字含有两个“e“的 阅读全文
posted @ 2018-11-27 18:07 _杨魏 阅读(366) 评论(0) 推荐(0)
摘要:一、迭代器 1.1 什么是可迭代对象? 字符串、列表、元组、字典、集合都可以被for循环,说明它们都是可迭代的。 我们怎么来证明这一点呢? 1.2 可迭代协议 我们现在是从结果分析原因,能被for循环的就是“可迭代的”,但是如果正着想,for怎么知道可迭代的呢?假如我们自己写了一个数据类型,希望这个 阅读全文
posted @ 2018-11-27 16:23 _杨魏 阅读(286) 评论(0) 推荐(0)
摘要:一、什么是装饰器? 装饰器本质上就是一个Python函数,它可以让其它函数在不需要做任何代码变动的前提下,增加额外的功能,装饰器的返回值也是一个函数对象。 装饰器的应用场景:比如插入日志,性能测试,事物处理,缓存等等场景。 二、装饰器的形成过程 现在我有一个需求,我想让你在不改变函数代码的情况下,测 阅读全文
posted @ 2018-11-26 21:17 _杨魏 阅读(307) 评论(0) 推荐(1)
摘要:1. 构建有默认参数的函数 当我们在构建一个函数或者方法时,如果想使函数中的一个或者多个参数使可选的,并且有一个默认值,那么可以在函数定义中给参数指定一个默认值,并且放到参数列表的最后就行了。比如: 如果默认参数使一个可以修改的容器,比如一个列表,集合或者字典,可以使用None作为默认值。比如: # 阅读全文
posted @ 2018-11-25 15:40 _杨魏 阅读(3438) 评论(0) 推荐(0)
摘要:1. 参数注解 当写好一个函数以后,想为这个函数的参数添加一些额外的信息,这样的话,其他的使用者就可以清楚的知道这个函数应该怎么使用,这个时候可以使用函数参数注解。 函数参数注解能提示程序员应该怎样正确使用这个函数。 比如,下面这个函数就是一个被注解了的函数: Python解释器不会对这些注解添加任 阅读全文
posted @ 2018-11-25 15:27 _杨魏 阅读(1575) 评论(0) 推荐(0)
摘要:当我们希望函数的某些参数强制使用关键字参数时,可以将强制关键字参数放到某个*后面就能得到这种效果。比如: 使用这种方法,我们还能在接受任意多个位置参数的函数中指定关键字参数。比如: 在很多情况下,使用强制关键字参数会比使用位置参数表意更加清晰,程序也更加具有可读性。例如,考虑一下下面这个函数调用: 阅读全文
posted @ 2018-11-25 14:11 _杨魏 阅读(1177) 评论(0) 推荐(1)
摘要:1. 可接受任意数量位置参数的函数 为了能让一个函数接受任意数量的位置参数,可以在参数部分使用“*”。 在上面这个函数中,rest是由所有其他位置参数组成的元组。 然后我们在代码中把它当成了一个序列来进行后续的计算。 2. 可接受任意数量关键字参数的函数 为了接受任意数量的关键字参数,使用一个以** 阅读全文
posted @ 2018-11-24 16:40 _杨魏 阅读(5256) 评论(0) 推荐(2)
摘要:1. 为什么要使用函数 假如说,现在python发生了一个bug,结果就是len方法不能使用了。 然后,现在有一个需求就是让计算“Hello world”的长度,那么怎么办呢? 这个问题很简单,那么来用代码实现一下: 这个时候,功能就已经实现了,但是现在又有了一个新的需求,就是要计算另外一个字符串的 阅读全文
posted @ 2018-11-24 16:03 _杨魏 阅读(206) 评论(0) 推荐(0)
摘要:1. 首先我们要新建一个用户名, 用来登录管理网站,可以使用如下命令: 2. 输入想要使用的用户名: Username(leave blank to use "administrator"): admin 3. 输入email: Email address:(在这里输入你的自己的邮箱账号) 如果不想 阅读全文
posted @ 2018-11-24 15:20 _杨魏 阅读(3417) 评论(0) 推荐(0)
摘要:################################################################## # PUBLIC METHODS THAT ALTER ATTRIBUTES AND RETURN A NEW QUERYSET # #################################################################... 阅读全文
posted @ 2018-11-23 18:16 _杨魏 阅读(338) 评论(0) 推荐(0)
摘要:$("b3").click(function(){ var formData = new FormData(); formData.append("csrfmiddlewaretoken", $("[name="csrfmiddlewaretoken]").val()); formData.append("f1", $("#f1")[0].files[0]); $... 阅读全文
posted @ 2018-11-23 18:14 _杨魏 阅读(205) 评论(1) 推荐(0)
摘要:1. 方式一 通过获取隐藏的input标签中的csrfmiddlewaretoken值,放置在data中发送。 2. 方式二 通过获取返回的cookie中的字符串,放置在请求头中发送。 注意: 需要引入一个jquery.cookie.js插件。 或者用自己写一个getCookie方法: 每一次都这么 阅读全文
posted @ 2018-11-23 18:13 _杨魏 阅读(8469) 评论(0) 推荐(0)
摘要:1. JS实现Ajax 2. jQuery实现的Ajax 最基本的jQuery发送Ajax请求示例: views.py urls.py 3. Ajax中使用JSON data参数中的键值对,如果值不为字符串,需要将其转换成字符串类型。 如果没有转换为字符串,那么views中的代码就接收不到passw 阅读全文
posted @ 2018-11-23 18:04 _杨魏 阅读(4090) 评论(0) 推荐(0)
摘要:Ajax(Asynchronous JavaScript And XML)翻译成中文就是“异步的JavaScript和XML”。即使用JavaScript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML)。 Ajax不是新的编程语言,而是一种使用现有标准的新方法。 Ajax 阅读全文
posted @ 2018-11-23 17:11 _杨魏 阅读(529) 评论(0) 推荐(0)
摘要:1. 什么是JSON? JSON值得是JavaScript对象表示法(JavaScript Object Notation) JSON是轻量级的文本数据交换格式 JSON独立于语言 JSON具有自我描述性,更易于理解 JSON使用JavaScript语法来描述数据对象,但是JSON仍然独立于语言和平 阅读全文
posted @ 2018-11-23 16:57 _杨魏 阅读(321) 评论(0) 推荐(0)
摘要:当请求到达中间件以后,先按照正序执行每个注册中间件的process_request方法,process_request方法返回的值是None,就依次执行。 如果返回的值是HttpResponse对象,不再执行后面的process_request方法,而是执行当前对应中间件的process_respo 阅读全文
posted @ 2018-11-22 21:09 _杨魏 阅读(923) 评论(0) 推荐(2)
摘要:1. 引入 在之前学习的过程中,已经学会了给视图函数加装饰器来判断用户是否登录,把没有登录的用户请求跳转到登录页面。 我们通过给几个特定视图函数加装饰器实现了这个需求。 但是以后添加的视图函数可能也需要加上装饰器,这样显得稍微有些繁琐。 但是,通过中间件就可以采用更适宜的方式来实现给所有类似请求都做 阅读全文
posted @ 2018-11-22 21:01 _杨魏 阅读(279) 评论(0) 推荐(1)
摘要:1. form与model的终极结合 2.class Meta下常用参数 阅读全文
posted @ 2018-11-22 20:25 _杨魏 阅读(261) 评论(0) 推荐(0)
摘要:1. 应用Bootstrap样式 2. 批量添加样式 可通过重写form类的init方法来实现: 阅读全文
posted @ 2018-11-22 20:24 _杨魏 阅读(406) 评论(0) 推荐(1)
摘要:1. 方式一 2. 方式二 阅读全文
posted @ 2018-11-22 20:21 _杨魏 阅读(355) 评论(0) 推荐(0)
摘要:Field required=True, 是否允许为空 widget=None, HTML插件 label=None, 用于生成Label标签或显示内容 initial=None, 初始值 help_text='', ... 阅读全文
posted @ 2018-11-22 20:18 _杨魏 阅读(771) 评论(0) 推荐(0)
摘要:1. form介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来。 与此同时, 我们在好多场景下都需要对用户的输入做校验, 比如校验用户是否输入, 输入的长度和格式等正不正确. 如果用户输入的内容有错误就需要在页面上相应的位置显 阅读全文
posted @ 2018-11-22 20:16 _杨魏 阅读(363) 评论(0) 推荐(0)
摘要:from functools import wraps def check_login(func): @wraps(func) def inner(request, *args, **kwargs): next_url = request.get_full_path() if request.session.get("user"): ... 阅读全文
posted @ 2018-11-21 22:08 _杨魏 阅读(1150) 评论(0) 推荐(1)
摘要:1. 创建一个示例 1.1 第一步 首先创建一个django项目,创建app01, 连接数据库,做好准备工作。 然后在templates目录下创建两个html: login.html负责登录页面; backend页面代表后台页面。 1 <!DOCTYPE html> 2 <html lang="en 阅读全文
posted @ 2018-11-21 22:06 _杨魏 阅读(6289) 评论(0) 推荐(1)
摘要:1. Session的由来 Cookie虽然在一定程度上解决了“保持状态”的需求,但是由于Cookie本身最大支持4096字节,以及Cookie本身保存在客户端,可能被拦截或窃取,因此就需要有一种新的东西,它能支持更多的字节,并且它保存在服务器,有较高的安全性。这就是Session。 问题来了,基于 阅读全文
posted @ 2018-11-21 21:51 _杨魏 阅读(395) 评论(0) 推荐(0)
摘要:1. Cookie 1.1 Cookie的由来 大家都知道HTTP协议是无状态的。无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系, 它不会受前面的请求响应情况直接影响, 也不会直接影响后面的请求响应情况。 一句话来概括, 对于服务器来说, 每次的请求都是全新 阅读全文
posted @ 2018-11-21 21:42 _杨魏 阅读(424) 评论(0) 推荐(0)
摘要:参数可以是: 一个模型: 将调用模型的get_absolute_url()函数 一个视图, 可以带有函数: 可以使用urlresolvers.reverse来反向解析名称 一个绝对的或相对的URL, 将原封不动的作为重定向的位置. 默认返回一个临时的重定向, 传递permanent=True可以返回 阅读全文
posted @ 2018-11-21 20:51 _杨魏 阅读(33770) 评论(0) 推荐(7)
摘要:结合一个给定的模板和一个给定的上下文字典, 并返回一个渲染后的HttpResponse对象。 参数: request: 用于生成响应的请求对象 template_name: 要使用的模板的完整名称, 可选的参数 context: 添加到模板上下文的一个字典. 默认是一个空字典. 如果字典中的某个值是 阅读全文
posted @ 2018-11-21 20:46 _杨魏 阅读(37852) 评论(5) 推荐(11)
摘要:JsonResponse是HttpResponse的子类, 专门用来生成JSON编码的响应. 默认只能传递字典类型, 如果要传递非字典类型需要设置一下safe关键字参数. 阅读全文
posted @ 2018-11-21 20:41 _杨魏 阅读(1531) 评论(0) 推荐(0)
摘要:与由DJango自动创建的HttpRequest对象相比, HttpResponse对象是我们的职责范围了. 我们写的每个视图都需要实例化, 填充和返回一个HttpResponse. HttpResponse类位于django.http模块中. 1. 使用 传递字符串 设置或删除响应头信息 2. 属 阅读全文
posted @ 2018-11-21 20:40 _杨魏 阅读(1012) 评论(0) 推荐(0)
摘要:当一个页面被请求时,django就会创建一个包含本次请求原信息的HttpRequest对象。 django会将这个对象自动传递给响应的视图函数,一般视图函数约定俗成地使用request参数承接这个对象。 1. 请求相关的常用值 path_info: 返回用户访问url, 不包括域名 method: 阅读全文
posted @ 2018-11-21 20:39 _杨魏 阅读(3321) 评论(0) 推荐(0)
摘要:1. 使用装饰器装饰FBV FBV本身就是一个函数,所以和给普通的函数加装饰器无差: 2. 使用装饰器装饰CBV 类中的方法与独立函数不完全相同,因此不能直接将函数装饰器应用于类中的方法,我们需要先将其转换为方法装饰器。 django中提供了method_decorator装饰器用于将函数装饰器转化 阅读全文
posted @ 2018-11-21 20:38 _杨魏 阅读(408) 评论(0) 推荐(0)
摘要:编写视图 一个视图函数,或者简短来说叫做视图,是一个简单的Python函数,它接受web请求,并且返回web响应。 响应可以是一个网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片,任何东西都可以。 无论视图本身包含什么逻辑,都要返回响应。 代码写在哪里也无所谓,只要它在你 阅读全文
posted @ 2018-11-21 20:36 _杨魏 阅读(213) 评论(0) 推荐(0)
摘要:我们之前写过的是基于函数的view,就叫FBV。还可以把view写成基于类的。 1. FBV版 2. CBV版 基于反射,实现根据请求方式不同,执行不同的方法。 原理: (1)路由:url view函数 dispatch方法(根据反射执行其他method方法) 使用CBV时要注意,请求过来后会先执行 阅读全文
posted @ 2018-11-21 20:34 _杨魏 阅读(311) 评论(0) 推荐(0)
摘要:1. 模板系统的介绍 在这个例子视图中返回文本的方式有点特别,HTML直硬编码在Python代码之中。 尽管这种技术便于解释视图是如何工作的,但直接将HTML硬编码到你的视图里却不是一个好方法。原因如下: 对页面设计进行的任何改变都必须对Python代码进行相应的修改。站点设计的修改往往比底层Pyt 阅读全文
posted @ 2018-11-21 20:30 _杨魏 阅读(384) 评论(0) 推荐(0)
摘要:即使不同的APP使用相同的URL名称,URL的命名空间模式也可以让你唯一反转命名的URL。 例如: project中的urls.py app01中的urls.py app02中的urls.py 现在,这两个app中的url名称是重复的,但是反转URL的时候就可以通过命名空间的名称得到当前的URL。 阅读全文
posted @ 2018-11-21 20:27 _杨魏 阅读(672) 评论(0) 推荐(0)
摘要:在使用Django项目时,一个常见的需求是获得URL的最终形式,以用于嵌入到生成的内容中(视图中和显示给用户的URL等)或者用于处理服务器端的导航(重定向等)。 人们强烈希望不要硬编码这些URL(费力,不可扩展且容易产生错误)或者设计一种与URLconf毫不相干的专门的URL生成机制,因为这样容易导 阅读全文
posted @ 2018-11-20 21:25 _杨魏 阅读(527) 评论(0) 推荐(0)
摘要:官方文档对socket模式下的socket.send() 和 socket.sendall()解释如下: sock.sendall(string[, flags]) Send data to the socket. The socket must be connected to a remote s 阅读全文
posted @ 2018-11-19 20:08 _杨魏 阅读(3528) 评论(0) 推荐(2)
摘要:和时间有关系的我们就要用到时间模块。在使用模块之前,应该首先导入这个模块。 1. 表示时间的三种方式 在Python中,通常有这三种方式来表示时间:时间戳、元组(struct_time)、格式化的时间字符串: (1) 时间戳(timestamp) :通常来说,时间戳表示的是从1970年1月1日00: 阅读全文
posted @ 2018-11-19 20:02 _杨魏 阅读(222) 评论(0) 推荐(0)
摘要:os模块是与操作系统交互的一个接口 阅读全文
posted @ 2018-11-19 19:55 _杨魏 阅读(259) 评论(0) 推荐(0)
摘要:sys模块是与python解释器交互的一个接口 阅读全文
posted @ 2018-11-19 19:49 _杨魏 阅读(225) 评论(0) 推荐(0)
摘要:1.hashilib模块的功能 python的hashlib提供了常见的摘要算法,如MD5, SHA1等等。 什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换成一个长度固定的数据串(通常用16进制的字符串表示)。 摘要算法就是通过摘要函数对任意长度的data计算 阅读全文
posted @ 2018-11-19 19:45 _杨魏 阅读(2407) 评论(0) 推荐(2)
摘要:URL配置(URLconf)就像Django所支撑网站的目录。 它的本质是URL与要为该URL调用的视图函数之间的映射表。你就是以这种方式告诉Django,对于URL(1)调用代码(1), 对于URL(2)调用代码(2) 参数说明: 一个正则表达式字符串一个可调用对象,通常为一个视图函数或一个指定视 阅读全文
posted @ 2018-11-18 21:11 _杨魏 阅读(1260) 评论(0) 推荐(1)
摘要:在Django的使用过程中需要使用命令让Django进行一些操作,例如创建Django项目,启动Django程序,创建新的APP,数据库迁移等。 1. 创建Django项目 新建一个文件夹来存放项目文件,切换到这个目录下,启动命令行工具,创建一个名为mysite的Django项目: django-a 阅读全文
posted @ 2018-11-18 17:49 _杨魏 阅读(5147) 评论(0) 推荐(0)
摘要:1. MVC框架 MVC, 全名Model View Controller, 是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model), 视图(View)和控制器(Controller), 具有耦合性低,重用性高、生命周期成本低等优点。 Django框架的设计模式借鉴了MVC框 阅读全文
posted @ 2018-11-18 14:24 _杨魏 阅读(4417) 评论(0) 推荐(1)
摘要:1. 安装django pip install django==1.11.15 2. 创建一个django项目 创建一个名为"mysite"的django项目 django-admin startproject mysite 3. 目录介绍 mysite/├── manage.py # 管理文件└─ 阅读全文
posted @ 2018-11-16 20:38 _杨魏 阅读(301) 评论(0) 推荐(0)
摘要:对于真实开发中的python web程序来说,一般会分为两部分:服务器程序和应用程序。 服务器程序负责对socket服务端进行封装,并在请求到来时,对请求的各种数据进行整理。 应用程序则负责具体的逻辑处理。为了方便应用程序的开发,就出现了众多的web框架,例如:Django、Flask、web.py 阅读全文
posted @ 2018-11-16 20:20 _杨魏 阅读(1798) 评论(0) 推荐(1)
摘要:web框架的根本是socket的代码,那么我们可以基于socket服务端的十几行代码写一个我们自己的web框架。 我们先不处理浏览器发送的请求,先让浏览器能显示我们web框架返回的信息,那我们就要按照HTTP协议的格式来发送响应。 1 import socket 2 3 sock = socket. 阅读全文
posted @ 2018-11-15 20:49 _杨魏 阅读(255) 评论(0) 推荐(0)
摘要:每个HTTP请求和响应都遵循相同的格式。 一个HTTP包含Header和Body两部分,其中Body是可选的。 HTTP响应的Header中有一个Content-Type表明响应的内容格式。 它的值如text/html;charset = utf-8。text/html则表示是网页,charset 阅读全文
posted @ 2018-11-15 20:23 _杨魏 阅读(1061) 评论(0) 推荐(0)
摘要:我们可以这样理解:所有的web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端。这样我们就可以自己实现web框架了。 可以说web服务本质上都是在这十几行代码基础上扩展出来的。这段代码就是根本。 用户在浏览器中输入网址,浏览器会向服务端发送数据,而这个数据则要遵守HTT 阅读全文
posted @ 2018-11-15 20:14 _杨魏 阅读(276) 评论(0) 推荐(0)
摘要:由于浏览器存在同源策略机制,同源策略阻止从一个源加载的文档或脚本获取另一个源加载的文档的属性。 特别的:由于同源策略是浏览器的限制,所以请求的发送和响应是可以进行,只不过浏览器不接收罢了。 浏览器同源策略并不是对所有的请求均制约: 制约:XmlHttpRequest 不制约:img、iframe、s 阅读全文
posted @ 2018-11-14 15:43 _杨魏 阅读(1478) 评论(0) 推荐(0)