2013年9月26日
摘要: 上一篇简单介绍了一下django,这一篇来介绍下django的models, django自带了一个ORM框架, 关于ORM就不多说了,相比sqlalchemy来说要方便很多, 毕竟是定制的嘛. 我们来看看django的模型是如何工作的. 首先引入models的包 from django.db import models 模型所需要的东西都在这里面, 对于模型来说一个model就对应一张数据库表, 我们来创建一个模型对象, 直接继承models.Model 打开app下的models.py 文件1 from django.db import models2 class People(m... 阅读全文
posted @ 2013-09-26 23:32 nobutawoproduce 阅读(246) 评论(0) 推荐(0)
  2013年9月23日
摘要: django很久之前就用过, 最近又拿起来用, 但发现已经忘得差不多了, 为了自己学习的更加牢固, 还是做一份简单的教程吧python与django之类的就不介绍了 首先说一下django的MTV模式, 与传统的MVC类似, django中的M对应model在django中翻译成模型, v对应controller翻译成视图, t对应view翻译成模板也就是html页面. django的http响应模式和http本身类似, 也是request-response模式, 请求是一个django.http.HttpRequest对象返回是一个django.http.HttpResponse对象... 阅读全文
posted @ 2013-09-23 23:25 nobutawoproduce 阅读(213) 评论(0) 推荐(0)
  2013年9月22日
摘要: html5的file api确实非常给力, 可以读到file选择文件的很多信息, 下面实现一个如何使用file api实现一个简单的上传图片预览 file chrome 和 firefox最新版都通过那么如何重置呢, 只需要将file元素的value等于""就OK了 阅读全文
posted @ 2013-09-22 16:22 nobutawoproduce 阅读(362) 评论(0) 推荐(1)
  2013年9月5日
摘要: 今天中了window.onload的陷阱, 以前一直认为通过async和defer来控制的script标签不会对onload和DOMContentLoaded有影响, 今天才发现原来不是这么一回事, 最后知道真相的我眼泪掉下来! 首先正常情况下的script标签,不管是src还是里面写着代码, 如果什么都不加的话会阻塞浏览器渲染, 这点是完全没有异议的. 然后再说加了属性的script标签, ie9以下包括ie9可以使用defer属性来控制文件加载, 使加载异步进行, 这样一来script不会阻塞浏览器渲染, 对于IE9来说, 已经实现了DOMContentLoaded事件, 使用def... 阅读全文
posted @ 2013-09-05 23:14 nobutawoproduce 阅读(2055) 评论(0) 推荐(0)
  2013年9月1日
摘要: 最近看了看一些HTML开发客户端的东西, 大概有这么几种: 使用原生的浏览器, 也就是windows下使用IE来做wevbiew, QTwebkit, 不过听说QTwebkit比较慢. 还有其他一些SDK之类的. 很早以前就听说豌豆荚是用webkit来实现的, 于是下了一个豌豆荚来研究, 发现豌豆荚下面带了一个libcef的库, 于是去大谷歌查了一下, 发现还有cef这么个好东西于是抱着折腾的精神下了一份准备拿来玩玩. cef的全名是chromium embedded framework 也就是嵌入式的chromium, 这东西大部分都是用C++写的, 于是重新研究下C++吧. 下载V... 阅读全文
posted @ 2013-09-01 10:32 nobutawoproduce 阅读(532) 评论(0) 推荐(0)
  2013年8月10日
摘要: 最近在工作中主要用到的模板是mustache, 这里非常想吐槽一下这个模板的设计之奇葩!! 于是就对模板这个东西稍稍研究了一下. 以前也研究过一点js的模板, 大部分的功能简单的前端模板都是采用全局替换的方法和with语句, 通过new Function来实现的, 并且采用js的原生语法, 其实这只是特别简单的处理方法, 以前我对模板的理解也仅仅到此. 一个真正的模板不应该只是全局的替换, 而是应该包括了语法分析, 解析,最后动态编译成编程语言. 对应在程序中大概是通过lexer语法分析器把模板转换成Token流, 再使用parser使用token流生成对应的node节点, 这个nod... 阅读全文
posted @ 2013-08-10 14:49 nobutawoproduce 阅读(218) 评论(0) 推荐(0)
  2013年6月19日
摘要: 在使用tornado的时候, 有的时候可能会用到gen这个工具, 这个工具主要是用来简化异步代码的, 可以用同步的写法来写异步调用比如:1 class GenAsyncHandler(RequestHandler):2 @gen.coroutine3 def get(self):4 http_client = AsyncHTTPClient()5 response = yield http_client.fetch("http://example.com")6 do_something_with_response(response... 阅读全文
posted @ 2013-06-19 21:42 nobutawoproduce 阅读(185) 评论(0) 推荐(0)
  2013年5月7日
摘要: grunt是一个基于nodejs的任务管理, 可以自动化打包, 测试代码, 大概类似Ant吧, 第一次用这种东西安装: 如果安装过grunt则删除:npm uninstall -g grunt 然后安装grunt-cli: npm install -g grunt-cli 安装这个后会把grunt命令添加到path路径中, 这个只是grunt这个包中grunt命令的代理!我擦,好绕啊, 这时你还没安装grunt呢.运行grunt会报错的!!!安装grunt有两种办法, 先切换到工作目录, 最简单的是直接npm install grunt --save-dev这个参数是为了添加grunt到p.. 阅读全文
posted @ 2013-05-07 11:39 nobutawoproduce 阅读(250) 评论(0) 推荐(0)
  2013年4月23日
摘要: 写了几篇tornado的源码分析, 觉得有必要把http的知识整理一下,作为一名web开发人员, 怎么能不知道http协议呢.这里我们暂且先不讨论tcp/ip与sokcet.http协议是一个简单又复杂的协议, 说简单, 因为他的各式很容易理解, 但内容很多, 想要全面理解还是需要在实际中慢慢体会, 不多说了先来看看http协议的结构:先来看看第一行:第一行是请求的方法资源和协议用空格分割, 其格式为GET/POST URI HTTP/1.0/HTTP/1.1 \r\n其实这几行就可以请求一个网页了!!!什么?你不相信, 那我们试一下打开cmd 输入telnetwww.baidu.com80, 阅读全文
posted @ 2013-04-23 22:19 nobutawoproduce 阅读(165) 评论(0) 推荐(0)
摘要: web这个文件也算是tornado中比较大的一个文件了, 主要是RequestHandler以及继承他的子handler和Application我们就先从Application说起, Application这个类是作为回调函数传递给HttpServer的, 至于怎么回调, 当然是执行__call__了先来看看结构:很简单 主要的方法当然是__call__先来看看构造函数:#handlers不用说了吧, 用过tornado的都知道, default_host可以实现vhost功能, 使用add_handlers就可以#类似这样# application.add_handlers(r... 阅读全文
posted @ 2013-04-23 16:41 nobutawoproduce 阅读(459) 评论(0) 推荐(0)