- 博客(17)
- 资源 (1)
- 收藏
- 关注
原创 django基于authenticate()函数的源码解析
如果我们使用自身的一个账号和密码进行登录验证的话,不得不使用authenticate()函数,至于authenticate()是怎么实现的,下面一一道来。下面这个代码是个登录视图,省略了一部分代码,应该可以看懂,看不懂的话,拉到最后,看完整版的:class LoginView(View): def post(self, request): #。。。代码省略 user = authenticate(username=username, password=passwo
2021-01-22 12:27:14
2055
原创 python基础之可变类型作为函数默认参数的陷阱
python唯一支持的参数传递模式是共享传参,这个概念听起来很高大上,其实什么也不是,共享传参其实就是把实参的引用传递给函数对应的形参,说白了 ,就是形参从实参哪里获取引用的副本。形参和实参只是起名的区别,实际上,都是指向同一块内存区域。但是,如果如果我们传递的是可变类型的引用的话,可能会出现一点问题:def f(a,b): a+=b return ax = 1y = 2print(f(x,y))print(x,y)#数字x不变a = [1,2]b = [3,4]pr
2021-01-20 22:01:11
219
翻译 docker联合文件系统
参考:http://www.dockerinfo.net/1753.html参考:http://dockone.io/article/783参考:https://www.cnblogs.com/justdojava/p/11271246.html参考:https://blog.csdn.net/runner668/article/details/93137765参考:https://blog.csdn.net/mazhai/article/details/88264233参考:https://bl
2021-01-15 16:54:16
398
1
原创 django--基于jwt的tokens验证浅析
setting.py文件里的配置,后面会用到类视图代码,很容易看懂,不多说:一般来说,服务器运行起来,发送请求后,程序肯定会进入as_view()方法,然后调用dispatch()方法,这个流程是必须的,不过这里的类视图继承的APIView类,而APIView类重写了django哪个View类的dispatch()方法,所以咱们这里调用的肯定是重写后的dispatch()方法。 def dispatch(self, request, *args, **kwargs): """
2021-01-11 19:42:32
525
原创 django权限验证浅析
参考:https://blog.csdn.net/study_in/article/details/84900297一般先去settng.py文件中配置一下权限认证类,这个认证类可以自定义也可以用django内置的权限认证类,我们这里用的时内置的认证类。至于你是定义全局权限还是局部权限无所谓。REST_FRAMEWORK = { # 指定 DRF 框架使用的异常处理函数 'EXCEPTION_HANDLER': 'meiduo_admin.utils.exceptions.excepti
2021-01-11 17:57:26
492
3
原创 django源码中常用的import_string模块导入方法浅析
这里先拿django另一个模块源码中包含的get_hashers()函数来举例至于装饰器什么的先不管,直接分析import_string()方法。从下面代码可以看到,settings.PASSWORD_HASHERS就是一个列表,然后把列表中的每一项字符串路径元素传入import_string()。@functools.lru_cache()def get_hashers(): hashers = [] #PASSWORD_HASHERS = [ # 'django.c
2021-01-05 12:18:06
635
原创 操作系统-内存基础
概念:内存是用于存放数据的硬件,程序在执行前应该放在内存中才能够被cpu处理。在多道程序中,系统中会有多个进程在内存中同时运行,那如区分各个进程的数据都存在什么地方呢?事实上,就像酒店管理人员为方便管理,给每个房间编一个房间号一样,操作系统会为每个存储单元分配地址逻辑地址与物理地址:程序在被编译时只需要确定变量存放的相对地址,cpu在执行运算时,会根据进程的起始地址再去计算逻辑地址就得到了物理地址。从写程序到程序执行的过程程序员可以编辑一系列语言代码,比如c语言中的.c文件,然后经过编译器
2021-01-04 21:49:08
93
原创 静态方法和类方法进行对比
类方法定义:使用装饰器@classmethod。第一个参数必须是当前类对象,其实就是以下代码的A,该参数名一般约定为“cls”,通过它来传递类的属性和方法(不能传实例的属性和方法);调用:实例对象和类对象都可以调用。class A(object): @classmethod def creat_obj(cls): print("哈哈") A.creat_obj()事实上,我们完全可以把creat_obj()函数中的"cls"当作A本身来用,一般类
2021-01-04 21:39:42
160
原创 可迭代对象,迭代器的介绍
可迭代对象Python中可迭代对象(Iterable)并不是指某种具体的数据类型,它是指存储了元素的一个容器对象,且容器中的元素可以通过__iter__( )方法或__getitem__( )方法访问。事实上python有很多内置方法的类就是可迭代对象,比如list、set、tuple等内置类所建的对象都可以说是可迭代对象,因为它们都实现了__iter__()方法或者__getitem__()方法,事实上,他们几个都实现了这两个方法()接下来,我们可以进入list类的源码中去查看,这两个类: def
2021-01-04 21:37:51
470
2
原创 python操作数据库之cursor对象
import MySQLdbconn = MySQLdb.connect(host=‘localhost’, user=‘root’, passwd='123456, db=‘dbname’, charset=‘utf8’)cursor = conn.cursor()cursor.execute(sql)成功result为1;失败为0。此时,cursor就是一个Cursor对象,这个cursor是一个实现了迭代器(def iter())和生成器(yield)的MySQLdb对象,这个时候curso
2021-01-04 21:37:15
2639
原创 django模板引擎
我们可以把html和js代码写入django的视图函数中,以字符串的格式传入HttpResponse()对象中,然后通过服务器返回给前端。也就是说,我们可以把html以字符串的形式写入python业务函数之中。那么这会产生一个很大的问题,如果前端如果想要改动前端代码,就需要改动python代码,这不利于项目的开发和维护。如何使用模板系统想要在 Python 代码中使用模板系统,只需遵循下面两个步骤:可以用原始的模板代码字符串创建一个 Template 对象, Django 同样支持用指定模板文
2021-01-04 21:36:59
353
1
原创 pycharm的debug调试,指定循环次数进入断点调试或者特定condition进入断点调试
a = 0b = 0while True: a+=1 b+=1场景:如上代码需要设置当第30次循环的时候进入调试模式调试,或者设置a为30的时候进入调试调试在要打断点的元素上打上红色的断点,注意,pycharm没有eclipse的hit count用于指定循环的次数,所以,这里用a作为临时变量代为计数,计算循环的次数将鼠标移动到红色断点的地方,然后点击右键,会弹出下图框,然后根据自己的条件进行修改。...
2020-11-03 15:19:06
7461
2
原创 利用github搜索开源项目
in:name 要搜索的要素(这个要素包含在一些开源项目的名字中)受欢迎程度较高的在readme.txt文件中搜索关键字在描述中搜索限定编程语言 language java指定项目发布的日期 (pushed:>2020-04-05 ...
2020-05-24 19:10:31
106
原创 虚拟环境的创建
虚拟环境的创建建立一个项目文件在pycharm中打开3.打开Project Interpreters页面:文件(file)——>设置(setting)——>项目(Project)——>Project Interpreters;寻找一个可用的python编译器,选择后,点击ok4.用命行打开test_virtual\venv\Scripts>5. 输入activate激活,出现venv则代表成功6. 此时,默认用的库则为虚拟环境中的库,我们需要进行pip安装第三
2020-05-22 15:56:20
153
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人