自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

晚先生的博客

编程小白的笔记

  • 博客(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关注的人

提示
确定要删除当前文章?
取消 删除