python
python学习笔记
学渣王菜菜
这个作者很懒,什么都没留下…
展开
-
Nginx单服务器、单域名、监听不同端口访问不同的项目(实战有效)
在进行项目开发和项目测试时,我们多数只有一个服务器,一个域名,如何在一个服务器上,一个域名上,通过不同的端口访问django项目呢?django采用uwsgi+nginx进行项目部署。原创 2021-06-12 09:54:49 · 2267 阅读 · 1 评论 -
异步IO -async_await
python为了将语义变得更加明确,关键字async用于定义原生协程await后面的是Awaitable函数,await 可以理解为yield fromasync实现了__await__方法@types.coroutine 装饰普通生成器实现await方法# from collections import Awaitableimport typesasync de...原创 2020-04-13 10:37:40 · 325 阅读 · 0 评论 -
异步IO-yield from 源代码剖析
yield from 处理的事情 1. 子生成器可能是一个迭代器,并不是一个作为协程的生成器,所以他不支持throw 2. 如果子生成器支持throw和close方法,但是在子生成器内部,这两个方法都会抛出异常 3. 调用方让子生成器自己抛出异常 4. 当调用方使用next或者send(None)时,都要在子生成器上调用next()函数,当调用发送非None值时, 才调用子生成器的.se...原创 2020-04-13 10:12:26 · 235 阅读 · 0 评论 -
异步IO-协程回顾yield from
咱先看看yield和yield form 的区别在哪儿,代码如下,全部传入range(10)def g1(iterable): yield iterabledef g2(iterable): yield from iterablefor value in g1(range(10)): print(value)for value in g2(range(10...原创 2020-04-13 09:58:31 · 194 阅读 · 0 评论 -
异步IO-协程深入close,throw
协程的基础已经学了,现在学习其他的一些特性,停止生成器之后再next会异常为StopIteration,close通过GenertorExit接受异常信息.他是基于BaseExceptions的.def gen_func(): try: yield "https://www.baidu.com" except GeneratorExit: # 基于BaseE...原创 2020-04-13 09:30:51 · 145 阅读 · 0 评论 -
异步IO学习-协程
异步IO是python开发中的一个难点,从理解学习用了很长的时间,很枯燥,但他的效率也是不可否否认的.要学异步IO肯定避不开协程的学习.我的笔记是根据廖雪峰的写的,可以参考廖雪峰协程又称为微线程,英文名:coroutine,协程的概念很早提出来,但到了最近几年彩在某些语言lua中广泛应用,子程序,或者称为函数,在所有的语言中都是层级调用,比如A调用B,B在执行过程中调用C,C执行完毕返...原创 2020-04-13 09:04:31 · 237 阅读 · 0 评论 -
PyCharm for Mac 快捷键
1、前言总结一下自己平时常用的PyCharm for Mac快捷键,因为网上经常找到的都是Windows版本,所以当是备忘也好,后续会不定期更新。2、PyCharm for Mac 快捷键快捷键 说明cmd + b 跳转到声明处(cmd加鼠标)cmd + d 在下一行复制本行的内容cmd [] 光标之前/后的位置cmd + opt + [] 函数和方法前后的位置cmd + back...原创 2020-04-02 10:54:41 · 341 阅读 · 0 评论 -
mac下一劳永逸使用国内源
(1)阿里云 http://mirrors.aliyun.com/pypi/simple/(2)豆瓣http://pypi.douban.com/simple/(3)清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/(4)中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/(5)华中科技大学http://...原创 2020-03-25 08:42:50 · 213 阅读 · 0 评论 -
使用pip/pip3安装第三方模块,出现Cannot unpack file xxx的问题的解决以及pip安装速度慢或出现readtime out问题的解决。
本方法应该适应于mac和linux和windows,因为我mac上是有多个版本的,所以我在使用pip3,大家灵活搭配.1.使用常规方法安装模块pip3 install requests2.显示time_out,也就是超时,这种问题,一般用国内源就好了.我使用的是豆瓣源.pip3 install https://pypi.doubanio.com/simple/ requests...原创 2020-03-25 07:50:43 · 5828 阅读 · 2 评论 -
多线程回顾-线程同步RLock,Lock
import threadingfrom threading import Lock,RLock#可重入的锁# 全局解释器锁 GIL# 非常影响性能,死锁(Lock不能同时两个acquire),调用使用锁的其他函数# Rlock 在一个线程中,可以连续多次调用acquire,但注意release次数要匹配## lock = Lock()lock = RLock() # 实际开发中使...原创 2020-03-22 14:54:32 · 265 阅读 · 0 评论 -
线程通信-通过queque的方式进行线程通信
from queue import Queueimport timeimport threadingdef get_detail_html(queue): while True: url =queue.get() print(" get detail html started") time.sleep(2) print("get deta...原创 2020-03-22 14:51:29 · 203 阅读 · 0 评论 -
多线程回顾-两种线程使用方法
import threadingimport time"""方法1:函数名传递def get_detail_html(url): print(" get detail html started") time.sleep(2) print("get detail html end")def get_detail_url(url): print(" get ...原创 2020-03-22 14:49:28 · 137 阅读 · 0 评论 -
多线程回顾-全局解释器锁GIL
import threading# 全局解释器锁 GIL# python 一个线程对应于c语言中的一个线程import dis# def add(a):# a = a+1 # return a# 反编译# print(dis.dis(add))# GIL根据执行的字节码行数、时间片,GIL在遇到IO操作主动释放# GIL释放例子total = 0d...原创 2020-03-22 14:47:32 · 113 阅读 · 0 评论 -
[Django+微信小程序开发]09Django数据库迁移和表结构迁移
备份数据库(备份app数据库)python manage.py dumpdata authorization > authorization_data.json同步数据库结构到slave(跨DB迁移)python manage.py migrate --run-syncdb --database slave同步数据到mysql数据库(导入数据)python manage.py l...原创 2020-03-07 09:30:46 · 246 阅读 · 0 评论 -
[Django+微信小程序开发]08Django模型层优化
Django模型层的优化首先我的最终目的是为了开发PythonDjango+微信小程序的校园应用,所以查看我这个系列就可以查看一些有用的内容,但笔记都是记录的我需要记录的一些内容,并不是整个项目的集合.Django模型层的变更与迁移:makemigration appnamemigrate 执行到数据库selmigrate appname 0014 查看执行sql语句(20条...原创 2020-03-07 09:29:37 · 255 阅读 · 0 评论 -
[Django+微信小程序开发]07pythonMixin模式
pythonMixin类视图Http请求的逻辑分离首先我的最终目的是为了开发PythonDjango+微信小程序的校园应用,所以查看我这个系列就可以查看一些有用的内容PythonMixin模式Mixin继承通用视图it-can的逻辑可以将代码分成多个可重用的组件将多个不同的可重用函数封装成Mixin在对象之间调用的时候,可以降低对象耦合,使开发的更加简洁优雅...原创 2020-03-07 09:25:56 · 201 阅读 · 0 评论 -
[Django+微信小程序开发]06控制应用菜单用的逻辑,可以省略
6 Django的后台实现定义功能清单的通用数据字段功能的名字功能的字段(category)功能的附加信息(版本,地址,描述)实现功能清单的接口应用1—>配置文件—>Django后台—>api返回给前台应用2—>配置文件—>Django后台—>api返回给前台应用—>配置文件—>Django后台—>api返回给前台...原创 2020-03-07 09:23:34 · 138 阅读 · 0 评论 -
[Django+微信小程序开发]05DjangoRestful url设计和配置
5django url配置首先我的最终目的是为了开发PythonDjango+微信小程序的校园应用,所以查看我这个系列就可以查看一些有用的内容django处理请求的逻辑寻址项目层面:根路由模块 urlpatterns应用层面:APP的子路由模块视图层面:视图访问Django的 restful url设计api接口的RESTful设计说明接口类型(视图,模板,api)/vi...原创 2020-03-07 09:22:08 · 299 阅读 · 0 评论 -
[Django+微信小程序开发]04使用Django和微信小程序HTTP交互
小程序中如何使用 HTTP请求首先我的最终目的是为了开发PythonDjango+微信小程序的校园应用,所以查看我这个系列就可以查看一些有用的内容请求方法请求参数请求端信息headerscookiesrequest对象请求方法:request-method客户端信息-request-META属性cookies-request-COOKIES属性请求参数-request-Que...原创 2020-03-07 09:17:18 · 724 阅读 · 0 评论 -
[Django+微信小程序开发]03常用的微信API开放能力
微信api,开放能力,基础组件微信api网络请求HTTP请求testNetwork: function (event) { wx.request({ url: 'http://www.imooc.com', method: "GET", header: {}, success: function (res) { ...原创 2020-03-07 09:10:01 · 407 阅读 · 0 评论 -
[Django+微信小程序开发]01微信小程序入门
微信小程序开发1.微信小程序json三层配置1. project.config.json 1. 微信开发者工具进行配置2 . app.json项目配置页面的路径界面表现底部type网络超时时间3. page_name.json页面配置细分到每个不同的页面2.小程序目录说明1.pages目录-页面相关代码2.utils目录-工具相关...原创 2020-03-07 09:08:50 · 739 阅读 · 0 评论 -
[Django+微信小程序开发]02微信小程序视图层
小程序视图层数据绑定Jinja2 语法相似 {{数据内容}}<view class="usermotto"> <text class="user-motto">{{motto}}</text></view>列表渲染<view wx:key="{{array}}"> No.{{index+1}}:{...原创 2020-03-07 09:09:25 · 187 阅读 · 0 评论 -
[Django+微信小程序开发]10Django常见的web攻击以及如何防范
Django常见的Web攻击以及如何防范sql注入攻击和防范危害非法读取篡改删除数据库中的数据盗取用户的各类敏感信息,获取利益通过修改数据库来修改网页上的内容注入木马方法通过在表单中注入一些sql语句,比如 OR 1=1 # 获得登陆的效果.# 在sql中是注释的意思Django如何做表单验证前端表单验证后端进行表单验证自定义查询用户登陆的逻...原创 2020-02-07 00:46:46 · 329 阅读 · 0 评论 -
Python构建随机请求头
通过User-Agent构建请求头headers能够将爬虫伪装,但是有的网站会有反爬技术。会去检查请求头,进而封掉IP地址。一个所以稍微不错的方法就是使用不用的User-Agent构建请求头,在每次提交网站请求的时候,使用随机请求头迷惑对方。构造随机请求头比较一种笨的方法就是去搜集各种User-Agent构建请求头,写一个随机函数,每次挑选一个User-Agent。既然这么繁琐...原创 2019-12-24 23:46:41 · 497 阅读 · 0 评论 -
Mac安装MongoDB
打开命令行brew tap mongodb/brewbrew install mongodb-community@4.2安装成功啦~文件路径配置文件:/usr/local/etc/mongod.conf日志目录路径:/usr/local/var/log/mongodb数据目录路径:/usr/local/var/mongodb启动&停止brew services sta...原创 2019-12-24 22:50:53 · 134 阅读 · 0 评论 -
使用 django-simple-captcha搞定Django验证码问题
使用 django-simple-captchaInstallation安装 Installdjango-simple-captchaviapip:pipinstalldjango-simple-captcha 通过 pip 安装 django-simple-captcha: pip Install django-simple-captcha Addc...原创 2019-12-19 07:14:16 · 1910 阅读 · 0 评论 -
django中如何使用template_processors避免频繁的函数传递给html,使用template上下文的方法传递方法
首先引起这个方法思考的是文件的访问和传递,在django上传图片的时候,会有很多app和很多view这就会出现一个问题,如果多个html中都需要访问文件、照片,显然会造成一个频繁的参数传递。此时出现了一个方案:就拿刚刚的图片访问做举例,先在Setting中设置其目录为mediaMEDIA_URL = '/media/'MEDIA_ROOT = os.path.join(BASE...原创 2019-12-19 07:10:43 · 311 阅读 · 0 评论 -
Mac安装redis
安装redisredis的安装方法有2种:下载源码编译安装和使用homebrew安装。本文采用后一种方法,如需下载源码编译安装参考mac下安装配置redis。通过homebrew安装redis:$ brew install redis终端输出==> Downloading http://download.redis.io/releases/redis-3.2.3.tar....原创 2019-12-15 20:56:58 · 121 阅读 · 0 评论 -
Pycharm_Template 设置模板变量
打开Pycharm设置左上角File,然后setting,Editor,File and Code Templates找到Python Script可用的预定义文件模板变量为:$ {PROJECT_NAME} - 当前项目的名称。$ {NAME} - 在文件创建过程中在“新建文件”对话框中指定的新文件的名称。$ {USER} - 当前用户的登录名。$ {DATE} - ...原创 2019-12-14 13:49:22 · 968 阅读 · 0 评论 -
django中static静态目录文件的调用和{% load staticfiles %}的使用
在使用django的时候,加载静态文件时候,在index.html中输入{% load staticfiles %}进行static在html中的声明在加载static静态目录之时,则可以使用href='{% static 'css/reset.css' %}'这种方法和flask中的url_for很类似...原创 2019-12-14 10:58:16 · 5894 阅读 · 0 评论 -
Django2.0-表单(2)-表单的FIeld,验证器,提取错误字段
用表单验证数据常用的Field使用Field可以是对数据验证的第一步。你期望这个提交上来的数据是什么类型,那么就使用什么类型的Field。可以通过表单类实例.cleaned_data.get("field_name")获得值CharField用来接收文本。参数:max_length:这个字段值的最大长度。min_length:这个字段值的最小长度。required:...转载 2019-12-11 22:01:18 · 189 阅读 · 0 评论 -
基于类的思想进行login登陆的实现(Django17)
django中偏向于使用类的方法进行功能的实现users/views.py#引入基础类Viewfrom django.views.generic.base import View#创建登陆类class LoginView(View): def get(self,request):#重写get方法 return render(request, 'lo...原创 2019-12-11 21:36:57 · 255 阅读 · 0 评论 -
Django中验证用户账号密码以及登陆账户方法以及验证方法重写(django16)
默认方法:Django中验证用户账号密码以及登陆账户方法:1、引入两个方法:authenticate和loginusers/views.py文件注意:如果你的登陆函数也叫login的话需要改为其他名字,在此处我改为了login_,因为在使用上方引入的login方法的时候,会出问题,为了避免出问题,要改名。from django.contrib.auth import auth...原创 2019-12-11 16:00:58 · 3720 阅读 · 1 评论 -
django中xadmin全局配置(django15)
1、设置每个app为中文,这儿app默认显示的是英文,为了方便看,改成英文。one -首先打开users 内apps.py文件,设置verbose_nameclass UserConfig(AppConfig): name = 'users' verbose_name = "用户管理"two-打开__init__.py,配置app内default_app_con...原创 2019-12-10 15:44:23 · 179 阅读 · 0 评论 -
django使用xadmin出现EmailVerifyRecord对象解决办法(django学习14)
网上有两种办法1、重写__Unicode__方法2、重写__str__方法经过测试方法1:失效方法2:ok代码如下:class EmailVerifyRecord(models.Model): code = models.CharField(max_length=20, verbose_name="验证码") email = models.EmailF...原创 2019-12-09 12:06:51 · 400 阅读 · 0 评论 -
Django2.2+xadmin2入坑指南(django学习13)
如果不是django2.2的安装django2.2pip3 install -i https://pypi.doubanio.com/simple/ django==2.2安装完成之后需要改掉mysql的版本限制、以及一个decode改成encode,在我前面的数据库系列学习笔记中有记载。下载xadmin源码:源码安装:github地址:https://github.co...转载 2019-12-09 09:57:26 · 629 阅读 · 0 评论 -
Django学习使用admin后台(django12)
1、创建超级用户:python3 manage.py createsuperuser2、创建成功之后打开:127.0.0.1:8000/admin访问使用账户密码即可登录3、让users显示在后台中:打开users下admin.py文件编写代码:from .models import *方法1:自定义UserProAdmin类,继承admin.ModelAdminclass Us...原创 2019-12-08 22:50:12 · 159 阅读 · 0 评论 -
Django把APP迁移到一个文件夹apps内(django11)
1、新建apps目录,(python package)2、把所有app目录移动进去3、打开setting.py文件4、把apps目录添加进入引导目录import syssys.path.insert(0,os.path.join(BASE_DIR,'apps'))5、设置apps为app根搜索目录...原创 2019-12-06 21:08:21 · 657 阅读 · 1 评论 -
Django2.x版本生成数据表出现TypeError: __init__() missing 1 required positional argument: 'on_delete'解决办法
解决办法:将第十一行的代码改为:org = models.ForeignKey(CourseOrg,verbose_name='所属机构',on_delete=models.CASCADE)即在外键值的后面加上 on_delete=models.CASCADE原因:在django2.0后,定义外键和一对一关系的时候需要加on_delete选项,此参数为了避免两个表里的数据不...原创 2019-12-05 22:48:04 · 253 阅读 · 0 评论 -
Django模板语法(django10)
最近在折腾Django,看到官网的Django模板文章写得挺详细的,就想着翻译下以加深自己的学习印象,如果能帮助到大家我也会感到很欣慰,以下是译文。这篇文章主要讲解了Django模板系统语法,如果你想了解更多关于Django模板如何工作以及如何扩展的话,可以看这篇文章The Django template language: for Python programmers.Django 模板语言...转载 2019-12-03 18:07:05 · 874 阅读 · 0 评论