- 博客(106)
- 资源 (2)
- 收藏
- 关注
原创 4-1 前后端分离的优缺点
为什么要前后端分离pc, app, pad 多端适应 SPA开发模式开始流行 (SPA(single page)单页面开发,后端提供api接口 数据,前端负责数据的展示) 前后端开发职责不清 (因为模板语言涉及到后端语言语法,前端人员要知道后端模板语言语法,后端要知道html js语言) 开发效率问题,前后端互相等待 前端一直配合着后端,能力受限 后端开发语言和模板高度耦合,导致...
2019-12-27 21:01:28
356
原创 尽量少使用外键,如果有外键完整性约束,需要应用程序控制---ContentTypes
尽量少使用外键,如果有外键完整性约束,需要应用程序控制解读:外键会导致表与表之间耦合,update与delete操作都会涉及相关联的表,十分影响sql的性能,甚至会造成死锁。高并发情况下容易造成数据库性能,大数据高并发业务场景数据库使用以性能优先最好的方式是,只有当你需要对某个对象或模型进行关联时,使用应用程序来创建与那个模型的关系django开发中可以使用django内置组件——C...
2019-12-26 23:59:44
571
原创 python的小数据池
python的小数据池目录一、什么是小数据池? 二、小数据池特性 1、整数 2、字符串 正文一、什么是小数据池? 小数据池是一种缓存机制,也被称为驻留机制。各种编程语言中都有类似的东西(常量池、小数据池都是指得同一个内容)。 python自动将-5~256的整数、有一定规则的字符串、都放在一个池中,只要变量是这些范围内的整数或者是字符串,则直接引用...
2019-11-20 20:05:05
490
原创 pycharm使用小知识之自动提示功能失效
如果目录设置templates目录为Templates Folder, 则不能使用自动提示功能如果python目录没有设置为Source Root的话, 则引入自定义模块时,会报红线
2019-11-14 13:50:00
1102
原创 peewee与peewee_async使用的注意事项
当model类有外键时,怎么处理?model类中使用的是peewee_async的database,异步驱动对象,而你调用外键对象的属性时,id = message.sender.id外键模型类对象会调用peewee的方法,而peewee是同步ORM库,所以会报错AssertionError: Error, sync query is not allowed! Call the ...
2019-11-11 23:17:43
1822
原创 项目日志---wtforms_json出错,
原因是wtforms_json底层调用了WTForms-SQLAlchemy,WTForms-SQLAlchemy会调用sqlalchemy,所以sqlalchemy也报了xxx错误,由此可以推测是我的sqlalchemy版本过高,解决的办法就是安装这几个模板兼容的版本,首先卸载sqlalchemy,但我卸载后,重写运行,项目居然运行正常,再当我重写下载sqlalchemy库后,继...
2019-11-11 22:17:58
569
原创 raise HTTPError(self._status_code) tornado.web.HTTPError: HTTP 404: Not Foun
一般是路由配置错误,检查一下就好了,然后清除一下浏览器缓存,就行了
2019-11-10 18:19:19
2436
原创 Cookie跨域小知识
今天做前后端分离的项目时,发现:前端项目url:localhost:80,与后端项目的url: localhost:8888,但是设置的cookie,前后端可以共享查看资料发现:根据同源策略,cookie是区分端口的,但是浏览器实现来说,“cookie区分域,而不区分端口,也就是说,同一个ip下的多个端口下的cookie是共享的!“,题主所说的ip相同,端口不同,覆盖就是这个道理。...
2019-11-09 17:52:40
588
原创 前后端分离优缺点
为什么要前后端分离pc,app, pad多端适合 SPA(single page) 开发模式开始流行 前后端开发职责不清 开发效率问题,前后端互相等待 前端一直配合后端,能力有限 后台开发语言和模板高度耦合,导致开发语言依赖严重前后端分离的缺点前后端学习门槛增加 数据依赖导致文档重要性增加 前端工作量加大 SEO的难度加大 后端开发模式迁移增加成本...
2019-11-05 23:07:55
1263
原创 7-1 为什么我们会选择peewee作为课程的orm
为什么要使用ORM隔壁数据库之间的差异【数据库引擎驱动差异,数据库sql的差异】 便于维护 orm会提供防sql注入 变量传递式的调用更加简单 很多立志不用orm的项目会慢慢自己开发一套orm为什么选择peeweedjango orm 、sqlalchemy、peewee 简单、灵活、申明方式和django的orm接近 star数量高、灵活度高 文档质量高、asyn...
2019-11-05 17:47:38
369
原创 4-2 同步、异步、阻塞和非阻塞
一些事实cpu的速度远高于io速度 IO包括网络访问和本地文件访问,比如requests,urllib等传统的网络库都是同步io 网络IO大部分的时间都是处于等待的状态,在等待的时候cpu是空闲的,但是又不是执行其他操作...
2019-11-03 18:52:19
120
原创 4-1 tornado提供了哪些功能
Tornado 大体上可以被分为4个主要的部分:web框架 (包括创建web应用的RequestHandler类,还有很多其他支持的类). HTTP的客户端和服务端实现 (HTTPServerandAsyncHTTPClient). 异步网络库 (IOLoopandIOStream基于tcp), 为HTTP组件提供构建模块,也可以用来实现其他协议. 协程库 (tornado...
2019-11-03 17:41:10
218
原创 3-5 尽量使用async和await而不是coroutine装饰器和yield from
基于coroutine是一个从生成器过度到协程的方案 yield和await的混合使用造成代码的可读性很差 生成器可以模拟协程,但是生成器应该作自己 原生协程可以使用async for和async with更符合python风格 原生协程返回的是一个awaitable的对象、装饰器的协程返回的是一个future...
2019-11-03 17:32:17
256
1
原创 3-4 你可能在错误的使用tornado
tornado提供的知识web框架 只要用tornado就是高并发的,事件循环的模式底层来讲是单线程的 为了尽量减少并发连接造成的开销,Tornado使用了一种单线程事件循环的方式 tornado中使用大量的同步io tornado只需要将耗时的操作放到线程池中就可以达到高并发 tornado中的多线程和协程的单线程是不是冲突的 在tornado中会有一个主线程去完成我们的协程的事...
2019-11-03 17:26:11
348
原创 3-2 tornado的优势
tornado的优势异步编码的一整套方案 tornado不只是web框架,也是web服务器 tornado是基于协程的解决方案 操作系统调度的最小单元是线程,所以协程需要程序员自己去调度 tornado提供websocket的长连接(web聊天,消息推送,私信)...
2019-11-03 15:35:54
407
原创 1-1 Tornado从入门到进阶 打造支持高并发的技术论坛-导语
1-1 导语 对高并发的底层知识,特别是异步io不是很熟悉,达不到tornado真正的并发优势 tornado是为了打造一个并发和长连接的web框架和web服务器 1-2 tornado介绍它是非阻塞式的服务器,而且速度相当块 得利于其非阻塞式的方式和epoll的运用,tornado每秒可以处理数以千计的连接,因此tornado是实时web服务的一个理想框架 torna...
2019-11-03 15:17:43
965
1
原创 项目心得
1. 数据校验:如果接受从浏览器中用户输入传递过来的数据,则需要进行校验,校验规则判断如果为false,直接return 结束程序,并返回,一层层校验,直到都为true,就是使用这种办法,判断为false直接返回 如果判断的表达式中有异常,需要异常捕获,进行处理 try: page = int(page) except Exceptio...
2019-10-30 17:00:48
125
原创 项目服务器命令集合
MySQL 启动服务器:net start mysql(windows) sudo service mysql start(linux) 重启服务器:sudo service MySQL restart reload (linux) 关闭服务器:net stop mysql (windows) sudo service MySQL stop(Linux) 连接客户端:mysql ...
2019-10-12 14:44:46
146
原创 天天生鲜项目所依赖的软件包
amqp==1.4.9anyjson==0.3.3billiard==3.3.0.23celery==3.1.25certifi==2019.9.11chardet==3.0.4Django==1.11django-celery==3.1.17django-haystack==2.8.1django-redis==4.10.0django-tinymce==2.6.0fdfs...
2019-10-11 21:00:03
302
原创 使用celery完成页面静态化中的celery版本问题
celery处理任务老是出错这里报错,是celery内部使用redis库时,报错,redis接受celery传入的str类型,而redis要接受的是mapping映射类型,肯定是哪个版本冲突,不兼容1. 首先先看celery版本问题django==1.8.1与celery==3.1.25不兼容,可以使用django==1.11与celery==3.1.25搭配 ,celer...
2019-10-11 18:31:51
388
原创 自定义django文件存储系统结合利用FastDfs上传文件中出现的问题
报错的原因:1. 使用了pip install fdfs_client 安装了fdfs,但他是python2版本的,所以会一致保存,直接去网站下载安装包zip文件2.无法上传的问题是fdfs_client 缺少依赖包mutagen,requests,安装pip install 即可解决...
2019-10-11 15:06:17
240
原创 用户模块之用户登录
用户登录流程接受数据 接受浏览器传递过来的数据 校验数据 数据完整性校验 【all】 业务处理:登录校验 登录认证:authenticate(username=username, password=password) 认证一组给定的用户名和密码 判断用户已激活 记录用户的登录状态, login(request, user)使用Django的sess...
2019-10-10 17:12:42
642
原创 配置redis作为Django缓存和session存储后端
django.contrib.auth.login()记录用户的登录状态:login(request, user)使用Django的session框架来将用户的ID保存在sessionDjango项目默认启用Session。打开settings.py文件,在项MIDDLEWARE_CLASSES中启用Session中间件。1. 首先中间件是什么Django中的中间件是一个轻量级、...
2019-10-10 17:06:55
475
原创 用户模块之用户注册
用户注册流程接受数据 接受浏览器传递过来的数据 校验数据 数据完整性校验 【all】 确认密码是否一致 校验邮箱是否合法 【^[a-z0-9][\w.\-]*@[a-z0-9\-]+(\.[a-z]{2,5}){1,2}$】 判断注册用户是否已经存在 【查询User.objects.get(username=username)并捕获异常】 业务...
2019-10-10 16:04:19
246
原创 django--迁移问题总结
情景1:生成并执行过迁移文件,再在模型中添加模型类当该django项目已经完成过迁移时,如果在model模块中再定义了一个模型类,则django不会完成迁移这是为什么呢?原因在第一次执行迁移的django-migrations表中2. 情景2:如果自己在数据库中已经创建了表,那么django中不用在生成迁移文件并执行,但还是要定义模型类,以便操作数据库...
2019-10-08 18:56:47
386
1
转载 getattr,setattr,hasattr详解
getattr,setattr,hasattr详解1,hasattr(object, name) 判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False。需要注意的是name要用括号括起来实例:2,getattr(object, name[,default]) 获取对象obj...
2019-10-02 15:41:41
111
原创 mysql--crud之新知识
number one-- 向students表插入 一个学生信息 insert into students values(0, "小李飞刀", 20, "女", 1, "1990-01-01"); insert into students values(null, "小李飞刀", 20, "女", 1, "1990-01-01"); insert ...
2019-09-28 23:53:22
94
原创 python--浏览器url编解码
浏览器在向服务器传送数据时,会将特殊字符(空格,<, \ 等)、中文(中国)转码成类似%20,%3C,%5C、%E4%BD%A0%E4%B8%8D%E8%A1%8C,为什么会这样了?因为浏览器在将这些特殊字符当作get请求的参数时,会将特殊字符转码。什么是get请求及参数,就是链接对应html中的<a>标签,参数就是http://127.0.0.1:8080/update/0...
2019-09-28 17:57:38
685
原创 python--通用装饰器
*args, **kwargs来接受被修饰函数的不定长参数 在调用的时候,*,**来拆包 在调用原函数的地方写上return返回函数结果 def set_func(func): print("---开始进行装饰") def call_func(*args, **kwargs): # 1. *args, **kwargs来接受被修饰函数的不定长...
2019-09-27 13:04:40
168
原创 ubuntu中git clone 下载速度慢问题解决
git clone xxxxx 克隆文件时,先使用如下命令更新下载源:sudo apt-get update && sudo apt-get upgrade
2019-09-26 13:19:12
1851
原创 python--变量修改
如果是对全局变量的修改用:global如果是对闭包中函数的局部变量的修改请用:nonlocalx = 300def test1(): x = 200 def test2(): nonlocal x print("----1----x=%d" % x) x = 100 print("----2----x=%d" % x) return test2t1 = te...
2019-09-25 18:33:34
714
原创 python--匿名函数、普通函数、闭包、对象,当作实参时,有说明区别?
匿名函数能够完成基本的简单功能,传递是这个函数的引用,只有功能 普通函数能够完成较为复杂的功能,传递的是这个函数的引用,只有功能 闭包能够完成将较为复杂的功能,传递的是这个闭包中的函数以及数据,因此传递是功能+数据 对象能够完成最为复杂的功能,传递的是很多数据+很多功能,因此传递是功能+数据...
2019-09-25 17:54:27
461
原创 运行时传参导入模块
动态导入模块:# 动态导入模块 sys.path.insert(0, './dynamic') # import frame_name --->它直接找frame_name这个变量名,不会找它的值 __import__(frame_name)...
2019-09-25 15:05:04
137
原创 python3编码问题总结
python 读取文本文件,报出gbk问题问题如下:UnicodeDecodeError: 'gbk' codec can't decode byte 0xaa in position 225: illegal multibyte sequence因为如果你没有指定打开文件编码方式的话,windows默认是gbk编码打开(Linux默认为utf-8编码),而你的文件是utf-8编码,...
2019-09-25 13:03:52
167
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人