def

AJAX之跨域请求

大兔子大兔子 提交于 2021-02-07 17:07:59
  一、引子   我现在开启了两个django项目,分别叫Demo1和Demo2,Demo1中有一个路径‘http://127.0.0.1:8000/index/’,对应的视图是index视图返回一个index页面,页面中只有一个button按钮,按钮绑定了一个单击事件,点击之后会发送一个ajax请求,请求的路径为‘http://127.0.0.1:8001/ajax/’,Demo1的ip和端口号是:‘http://127.0.0.1:8000/’,Demo2的ip和端口号是:‘http://127.0.0.1:8001/’。前面一段描述就是在Demo1项目的一个页面向Demo2项目发送一个ajax请求,在Demo2有对应的路径和视图来处理请求,并返回值。我们运行一下。报错如下:   这就是一个已拦截的跨域请求的错误,错误内容是CORS头少“Access-Control-Allow-Origin”。这就是我们用ajax发送一个跨域请求出现的错误,这就是今天我要处理的一个问题。   二、同源策略   同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能就会受到影响,可以说web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。 同源策略,它是由Netscape提出的一个著名的安全策略

Python魔法方法指南

谁说我不能喝 提交于 2021-02-07 07:27:04
很多人想要我的一份学习笔记,所以在魔法指南之前,我放上我自己学习过程中提炼的一些知识点和自己的感悟,如果不想看我的笔记可以直接跳过。 从入门到进阶,一个很重要的点就是Python中的魔法方法,魔法方法就是可以给你的类增加魔力的特殊方法,如果你的对象实现了这些方法中的某一个,那么这个方法就会在特殊的情况下被 Python 所调用,你可以定义自己想要的行为,而这一切都是自动发生的。它们经常是两个下划线包围来命名的(比如 __init__ / __new__ 等等),Python的魔法方法是非常强大的。 如果你学习过Java,那你会发现Python中的魔法方法像是Java中的重载,Python中的魔法方法可以理解为:对类中的内置方法的重载,注意这里不是重写。 举个例子,Python中有个比较操作符 == 用来比较两个变量的大小,而这个操作符是通过内置函数 __eq__ 来实现的,所以我们只需要通过改变这个内置函数代码,就可以改变重新定义这个操作符的行为。 我们定义一个类Word,继承自str类,现需要重新定义该类的操作符==,使这个操作符用来判断两个字符串长度是否相等,而不是通过字母顺序判断两个字符串是否相等。注意该变化只适用于Word类,而不适用于其它类。 再举个例子:Python中的 __new__ 方法是对象实例化时调用的第一个方法,该方法仅读取一个 cls

Flask最强攻略

不想你离开。 提交于 2021-02-07 04:21:03
蓝图,听起来就是一个很宏伟的东西 在Flask中的蓝图 blueprint 也是非常宏伟的 它的作用就是将 功能 与 主服务 分开怎么理解呢? 比如说,你有一个客户管理系统,最开始的时候,只有一个查看客户列表的功能,后来你又加入了一个添加客户的功能(add_user)模块, 然后又加入了一个删除客户的功能(del_user)模块,然后又加入了一个修改客户的功能(up_user)模块,在这个系统中,就可以将 查看客户,修改客户,添加客户,删除客户的四个功能做成蓝图加入到客户管理系统中,本篇最后会做一个这样的例子,但是首先我们要搞清楚什么是蓝图 blueprint 1.初识Flask蓝图(blueprint) 创建一个项目然后将目录结构做成: s_view.py 文件中的内容 from flask import Blueprint # 导入 Flask 中的蓝图 Blueprint 模块 sv = Blueprint( " sv " , __name__ ) # 实例化一个蓝图(Blueprint)对象 @sv.route( " /svlist " ) # 这里添加路由和视图函数的时候与在Flask对象中添加是一样的 def view_list(): return " svlist_view_list " manager.py 文件中的内容 from flask import

网络爬虫之scrapy框架设置代理

匆匆过客 提交于 2021-02-07 02:45:00
前戏 os.environ()简介 os.environ()可以获取到当前进程的环境变量,注意,是当前进程。 如果我们在一个程序中设置了环境变量,另一个程序是无法获取设置的那个变量的。 环境变量是以一个字典的形式存在的,可以用字典的方法来取值或者设置值。 os.environ() key字段详解 windows: os.environ['HOMEPATH']:当前用户主目录。 os.environ['TEMP']:临时目录路径。 os.environ[PATHEXT']:可执行文件。 os.environ['SYSTEMROOT']:系统主目录。 os.environ['LOGONSERVER']:机器名。 os.environ['PROMPT']:设置提示符。 linux: os.environ['USER']:当前使用用户。 os.environ['LC_COLLATE']:路径扩展的结果排序时的字母顺序。 os.environ['SHELL']:使用shell的类型。 os.environ['LAN']:使用的语言。 os.environ['SSH_AUTH_SOCK']:ssh的执行路径。 内置的方式 原理 scrapy框架内部已经实现了设置代理的方法,它的原理是从环境变量中取出设置的代理,然后再使用, 所以我们只需要在程序执行前将代理以键值对的方式设置到环境变量中即可。

Dataframe 多行合并为一行

萝らか妹 提交于 2021-02-07 02:36:26
原表数据: 最后4行合并为1行: def ab(df): return ' , ' .join(df.values) df = df.groupby([ ' 股票代码 ' , ' 股票简称 ' ])[ ' 所属概念 ' ].apply(ab) df = df.reset_index() 效果如下: 来源: oschina 链接: https://my.oschina.net/u/4394357/blog/3619664

python --判断列表重复

陌路散爱 提交于 2021-02-06 17:48:02
一、判断单个列表中的元素是否存在重复 使用 set方法 去重后,和原list进行对比,如果相等,那么说明原列表无重复,如果存在重复,说明列表存在重复 1 def is_repect_all(L): 2 repeatList = []; 3 setList = set(L); 4 flag= True; 5 if len(L) != len(setList): 6 flag= False; 7 print ( ' 列表的id存在重复,其中重复项及重复次数如下: ' ); 8 for each_item in setList: 9 re_count = 0; 10 for each_item_L in L: 11 if each_item == each_item_L: 12 re_count += 1 ; 13 if (re_count >= 2 ): 14 print (each_item, L.index(each_item), " : " , re_count); 15 16 # print(all_gameid_List[L.index(each_item)]); 17 return flag,re_count; 18 19 else : 20 return flag; 二、判断两个列表是否重复: 1 # 判断两个列表是否含有重复项 2 # 方法有多种,此处选择最简单的方法

python 判断列表的包含关系

前提是你 提交于 2021-02-06 15:45:21
def is_Sublist(l, s): sub_set = False if s == []: sub_set = True elif s == l: sub_set = True elif len(s) > len(l): sub_set = False else : for i in range(len(l)): if l[i] == s[ 0 ]: n = 1 while (n < len(s)) and (l[i+n] == s[n]): n += 1 if n == len(s): sub_set = True return sub_set a = [ 2 , 4 , 3 , 5 , 7 ] b = [ 4 , 3 ] c = [ 3 , 7 ] print(is_Sublist(a, b)) print(is_Sublist(a, c)) 来源: oschina 链接: https://my.oschina.net/u/4363202/blog/3749775

Python线程同步

女生的网名这么多〃 提交于 2021-02-06 10:44:00
线程执行 join与setDaemon 子线程在主线程运行结束后,会继续执行完,如果给子线程设置为守护线程(setDaemon=True),主线程运行结束子线程即结束; 如果join()线程,那么主线程会等待子线程执行完再执行。 1 import threading 2 import time 3 4 5 def get_thread_a(): 6 print ( " get thread A started " ) 7 time.sleep(3 ) 8 print ( " get thread A end " ) 9 10 11 def get_thread_b(): 12 print ( " get thread B started " ) 13 time.sleep(5 ) 14 print ( " get thread B end " ) 15 16 17 if __name__ == " __main__ " : 18 thread_a = threading.Thread(target= get_thread_a) 19 thread_b = threading.Thread(target= get_thread_b) 20 start_time = time.time() 21 thread_b.setDaemon(True) 22 thread_a.start()

[LeetCode] 374. Guess Number Higher or Lower 猜数字大小

穿精又带淫゛_ 提交于 2021-02-06 10:31:14
We are playing the Guess Game. The game is as follows: I pick a number from 1 to n . You have to guess which number I picked. Every time you guess wrong, I'll tell you whether the number is higher or lower. You call a pre-defined API guess(int num) which returns 3 possible results ( -1 , 1 , or 0 ): -1 : My number is lower 1 : My number is higher 0 : Congrats! You got it! Example: n = 10, I pick 6. Return 6. 从1到n中,我随便选一个数字,然后你来猜。有一个函数可以返回我选的数比你猜的数大还是小或者相等,分别用1,-1,0来表示。最后要返回我选的这个数。注意:"My number" 指的是我选的那个数,不是你猜的数。 解法:二分搜索法 Java: public int guessNumber(int n) { int i = 1, j = n; while(i < j) {

Python——Scrapy爬取链家网站所有房源信息

浪子不回头ぞ 提交于 2021-02-06 09:49:57
用scrapy爬取链家全国以上房源分类的信息: 路径: items.py # -*- coding: utf-8 -*- # Define here the models for your scraped items # # See documentation in: # https://doc.scrapy.org/en/latest/topics/items.html import scrapy class LianItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() pass class ErShouFangItem(scrapy.Item): # 省份 province = scrapy.Field() # 城市 city = scrapy.Field() # 总价 total_price = scrapy.Field() # 单价 single_price = scrapy.Field() # 楼层 room_info = scrapy.Field() # 住宅位置 region = scrapy.Field() # 房屋朝向及装修情况 direction = scrapy.Field() # 建筑面积 area = scrapy.Field() #