蜗牛历险记(二) Web框架(中)】的更多相关文章

上篇简单介绍了框架所使用的Autofac,采用Autofac提供的Ioc管理整个Web项目中所有对象的生命周期,实现框架面向接口编程.接下来介绍框架的日志系统. 一.介绍之前 框架日志是否有存在的必要性?假如你认为你的框架永远不会出现Bug,或者你能根据错误提示就能还原现场,重现这个问题,那你不需要日志.目前看来这样的项目不存在(Helloworld之类除外).因此日志框架还是很必要的. 日志框架用于记录:系统运行过程中错误详情:用于记录系统使用过程中产生的意外情况:用于记录系统一些状态信息等等…
接上篇所说,本篇主要内容是讲述如何使用Autofac来管理整个平台的生命周期(初级). 一.简述 插件式Web开发的同学应该还会记得PreApplicationStartMethod这个Assembly级别的Attribute,它可以在应用程序启动之初(Web启动之前)启动,一般我们用它来做一些插件资源拷贝.插件动态加载的工作. [assembly: PreApplicationStartMethod(typeof(PreApplicationInit), "InitializePlugins&…
Web框架第三篇--缓存篇 缓存的优劣很大程度上决定了框架的效率,一个有节操的缓存它应该是高效的,利用率高的,具备更多扩展功能的. 一.介绍之前 计算机各个硬件的运行效率是不一样的,CPU>>一级缓存>>二级缓存>>内存>>硬盘.如何提供CPU.一级缓存.二级缓存的使用率是操作系统的课题.我们需要做的就是如何提高内存使用效率,减少磁盘IO. 目前我们熟知的跟缓存有关的产品:.Net Mvc的CacheManager,Redis,Memcached 二.使用范…
该方法主要是动态注册自己写的 router . 注册器 router 文件名为 loader.js  . var express = require('express'); var fs = require('fs'); var router = express.Router(); var files = fs.readdirSync(__dirname); files .filter(function(file, index){ return file !== 'loader.js'; })…
看了一下廖雪峰的那个web框架,其实就是封装了web.py,请求使用异步并将aiomysql做为MySQL数据库提供了异步IO的驱动,前端部分则整合了jinja.其中最难的应该是orm部分了. 下面是orm一个简单的例子. class User(Model): __table__ = 'users' id = StringField(primary_key=True, default=next_id, ddl='varchar(50)') email = StringField(ddl='var…
在每个Web请求中都提供一个 request.user 属性来表示当前用户.如果当前用户未登录,则该属性为AnonymousUser的一个实例,反之,则是一个User实例. 你可以通过is_authenticated()来区分,例如: if request.user.is_authenticated(): # Do something for authenticated users. else: # Do something for anonymous users. 登陆login login(…
首先要理解一个概念 MAC (message authenticate code) 消息认证码(带密钥的Hash函数):密码学中,通信实体双方使用的一种验证机制,保证消息数据完整性的一种工具. 构造方法由M.Bellare提出,安全性依赖于Hash函数,故也称带密钥的Hash函数.消息认证码是基于密钥和消息摘要所获得的一个值, 可用于数据源发认证和完整性校验. 消息认证码(带密钥的Hash函数):密码学中,通信实体双方使用的一种验证机制,保证消息数据完整性的一种工具. 构造方法由M.Bellar…
test case一个 TestCase 的实例就是一个测试用例.什么是测试用例呢?就是一个完整的测试流程,包括测试前准备环境的搭建(setUp),实现测试过程的代码(run),以及测试后环境的还原(tearDown).元测试(unittest)的本质也就在这里,一个测试用例是一个完整的测试单元,通过运行这个测试单元,可以对某一个功能进行验证. test suite对一个功能的验证往往是需要多测试用例的,可以把多的测试用例集合在一起执行,这就产生了测试套件 TestSuite 的概念,它用来组装…
Python之Web框架: 一.  Web框架的本质: 对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. #!/usr/bin/env python #coding:utf-8 #web框架的基础结构,几乎所有开发者都是基于此基础结果进行扩展. import socket def handle_request(client): buf = client.recv(1024) client.send("HTTP/1.1 200 OK\r\n\…
一 Django自定义分页 目的:自定义分页功能,并把它写成模块(注意其中涉及到的python基础知识) models.py文件 # Create your models here. class UserList(models.Model): username = models.CharField(max_length=32) age = models.IntegerField() 分页模块page.py文件 #!/usr/bin/env python #-*- coding:utf-8 -*-…