- 博客(16)
- 收藏
- 关注
原创 在ORM框架中使用原生sql语句进行聚合查询遇到的问题
因工作需要,在项目中使用了peewee框架。使用原生语句进行查询的时候发现如果用了聚合函数,查询出来的结果会有失误。假设我用了where = "select count(*) from blog"result = Blog.raw(where)那么结果会是Blog表的全部字段,而且查询集包含很多条记录,里面没有count(*)的值。这是使用ORM的一个弊端,查询的结果只能是你选择的那个表中的字段...
2018-03-11 11:54:44 1795
原创 python协程
协程看上去和普通程序很像,但是和普通程序最大的不同是,协程可以自己切换执行的顺序,然后在适当的时候切换回来,在这切换的过程中程序的上下文保持不变,这一点和线程很相似,所以又称为用户态线程。他们的区别就是线程有时钟阻塞和线程切换等,协程都是靠用户自己编写的程序,其实还是单线程的,如果遇到阻塞性I/O的话程序就会被挂起,而且需要用户手动切换接下来要执行的另一条程序。也就是说,如果有这么一种方法,能够实
2017-11-01 21:50:44 169
原创 Django+uwgis+nginx部署
安装nginx:sudo apt-get install python-devsudo apt-get install nginx安装uwsgi:pip install uwsgi配置nginx,首先新建一个文件:sudo vi /etc/nginx/sites-available/mysite.conf配置内容:server{listen 80;s
2017-10-27 12:09:27 1634
原创 RESTful API
在开始之前需要下载: pip install djangorestframework把应用添加进INSTALLED_APPS:INSTALLED_APPS = (...'rest_framework',)配置:REST_FRAMEWORK = {'DEFAULT_PERMISSION_CLASSES': ['rest_framework.permissions.Dj
2017-10-24 13:19:00 170
原创 在Django中使用memcached缓存
安装步骤:下载安装包:wget http://memcached.org/latest进入安装包所在的目录,然后解压:tar -zxvf memcached-1.x.x.tar.gz进入安装包:cd memcached-1.x.x输入命令:./configure && make && make test && sudo make install绑定Python:pip inst
2017-10-22 15:11:57 1306
原创 contenttypes框架
当一个model里面有很多个外键的时候就可以使用contenttypes框架。这个框架可以提供一个接口给所有的model,很方便的将模型关联起来。有以下的model:class Post(models.Model): title=models.CharField(max_length=200) test=models.TextField()class Picture(m
2017-10-21 13:19:19 566
原创 AJAX
AJAX的全称是Asynchronous JavaScript and XML,就是异步JavaScript和XML。我们的每次请求都对应一个网页,也就是说如果要发送请求就要重新加载页面,AJAX的目的就是在不重新加载页面的情况下发送请求。在大部分浏览器实现AJAX主要是用XMLHttpRequest属性: var xmlhttp=new XMLHttpRequest();XMLHt
2017-10-05 15:39:37 337
原创 JS操作表单
操作表单表单操作和DOM操作基本相同,表单也是DOM树的一部分。假如有一个表单:-------------Submit假如已经获取了一个节点:var input=document.getElementById('input')获取输入的值:input.value;更新文本框的值:input.value='更新的内容'这种方法适用于text,password,
2017-10-04 11:17:56 266
原创 DOM 基本操作
浏览器为js提供了一些可操作的对象,主要有下面几种:window:不但是全局变量,也是浏览器的窗口。有innerWidth和innerHeigth属性,表示浏览器除去工具栏和菜单栏等占位元素后的高和宽。navigator:表示浏览器的信息如版本,操作系统类型等。screen:屏幕的信息,属性有宽度高度多高,以像素为单位。location:表示当前url的信息,主要属性和方法:-
2017-10-03 14:54:16 270
原创 js面向对象
在大多数语言中,类和实例是面向对象的基本概念,通过创建类来实现函数的封装和继承。然而在JavaScript里面一切数据都可以看成对象,没有类这个概念,在js实现面向对象是依靠原型(prototype)。创建对象如果要创建一个对象,首先定义一个构造函数:function Cat(name){ this.name=name this.run=function(){
2017-10-01 19:04:12 170
原创 js闭包
之所以有闭包这个概念,其实是因为变量作用域的问题。我们都知道变量的作用域分为全局作用域和局部作用域。全局变量可以在函数内部读取,在外部却不可以读取函数内部的局部变量。然而出于各种原因,有时候我们需要读取函数内的局部变量。一般情况下是不能这样做的,我们可以取巧,就是在函数内部再定义一个函数,返回变量的值:function f1(){ var n=999; function f
2017-10-01 14:56:00 196
原创 js函数关键字
函数定义语句:function 函数名 (参数) {执行语句块];调用函数是可以传入任意多的参数而不影响函数调用。arrguments关键词js的函数内部有一个关键词arguments,这个关键词只在函数内起作用,指向函数调用者传入的所有参数。如:function test(x){allert(x); //1for(var i =0;iallert(argumen
2017-09-30 16:40:12 3062
原创 JS基础
每条语句使用 ;结束,语句块包含在 {} 里面。定义变量:var 例如:var i = 0;数据类型:Number: JS不区分浮点型和 整数。1.5和10但是Number。字符串:用单引号或者双引号括起来的就是字符串,反引号 ` ` 表示多行字符串。字符串是不可变的,如果想要对某个字符串赋值不会引发错误但是也不会有改变布尔值:只有true和false。数组Array:可
2017-09-30 15:14:46 156
原创 自定义认证后台和QQ第三方登录
有很多网站的登录不但可以使用网站账号密码,还能用注册的邮箱和手机号进行登录,现在就用Django实现这个功能。Django默认的认证方式是使用username和password字段进行认证的,我们可以加上一个通过email字段获取用户的认证后台来登录。一个认证后台就是一个实现了authentication和get_user方法的python类,首先在应用目录创建一个authenticate.p
2017-09-14 15:31:39 1328
原创 使用Django的认证视图
注册和登录是网站的基本功能,django包含了很多开箱即用的登录功能,但是没有注册功能,我们可以自己编写。首先创建一个注册表单:from django import formsfrom django.contrib.auth.models import Userdef UserRegistrationForm(forms.ModelForm): password = for
2017-09-13 23:16:05 450
原创 Django普通视图函数和基于类视图的分页
Django有内置的分页类,这个类位于django/core/paginator.py中,要使用这个类需要导入。普通视图函数分页假如我们要建一个博客网站,需要在让帖子在列表里显示,下面这个是没有分页功能的视图函数:def index(request): posts=Post.objects.all() return render(request,'l
2017-09-07 12:01:55 535
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人