- 浏览: 1307881 次
- 性别:
- 来自: 江苏
最新评论
-
honey_fansy:
的确,不要自己的支持就说完美支持,我的就不行,别说我的不是fi ...
无js实现text-overflow: ellipsis; 完美支持Firefox -
fanchengfei:
事件长微博,欢迎转发:http://weibo.com/332 ...
《在路上 …》 写代码也需要一点演技 – python2.6 的 class decorator -
blued:
没有报错,但排版效果一点都没有 咋回事。请指教
python排版工具 -
szxiaoli:
耍人呀,效果在哪儿呀
滑动效果 -
accaolei:
这个能监到控子目录吗?,我测试了一下,发现子目录里的文件监控不 ...
windows监控目录改动
代码在http://groups.google.com/group/python-cn/browse_thread/thread/6980d49316499e96
可以方便的在url中使用decorate,这里我演示了一个内建的登录,一个自定义的页面访问量的统计
如自定义的页面访问量的统计代码很简单,如下
models.py
from django.db import models
class PageAnalytic(models.Model):
url = models.URLField(max_length=2048,primary_key=True)
visit = models.IntegerField(default=0)
class Admin:
list_display= ('url','visit')
class Meta:
ordering = ['url']
views.py:
from models import PageAnalytic
from url_decorate import make_decorate
@make_decorate
def page_analytic(request):
page,is_create=PageAnalytic.objects.get_or_create(url=request.path)
page.visit+=1
page.save()
shortcuts.py:
from url_decorate import url_decorate,patterns_decorate
from views import page_analytic
page_analytic_url=url_decorate(page_analytic)
page_analytic_patterns=patterns_decorate(page_analytic)
使用示例:
.................
from utils.url_decorate.shortcuts import
page_analytic_patterns,page_analytic_url
urlpatterns = patterns('',
#统计页面访问量
page_analytic_url(r'^admin/', include('django.contrib.admin.urls')),
(r'^media/(?P
.*)', 'django.views.static.serve',
{'document_root' : settings.MEDIA_ROOT, 'show_indexes':True}),
)
urlpatterns+=page_analytic_patterns('',
(r'^$',direct_to_template, {'template': 'mytube.html'}),
)
Url decorator
Some time we want to account the number of visitor by url or some url
only the logined in user can visit .
Yes , we can use url decorator do this thing .
I write a reuseable app for simplify those job . It can make decorator
more easy , can work with "include(xxx.urls)",
support multi-decorator .
Ok , we give a simplest example:
from django.conf.urls.defaults import *
from django.contrib.admin.views.decorators import staff_member_required
from django.views.generic.simple import direct_to_template
from url_decorate.url_decorate import url_decorate
staff_member_url=url_decorate(staff_member_required)
urlpatterns = patterns('',
staff_member_required(r'^$',direct_to_template, {'template': 'xxx.html'}),
)
Ok,You will find the / of this website require login in .
But , sometime we have a lot of url should be logined in ,
patterns_decorate will help you to do this more easy .
Just use as below:
staff_member_patterns=patterns_decorate(staff_member_required)
urlpatterns = staff_member_patterns('',
(r'xxx',direct_to_template, {'template': 'xxx.html'}),
(r'xxx',direct_to_template, {'template': 'xxx.html'}),
(r'xxx',direct_to_template, {'template': 'xxx.html'}),
)
For lazy people as me , I write staff_member_patterns,staff_member_url
and login_url,login_patterns in shortcuts.py , just import it to use
:)
Then , let's write a decorator by ourself .This decorator can account
the number of visitor for each pages .
First , write a model
models.py:
#--------------------------------------------------------------------------<wbr></wbr>--
from django.db import models
class PageAnalytic(models.Model):
url = models.URLField(max_length=2048,primary_key=True)
visit = models.IntegerField(default=0)
class Admin:
list_display= ('url','visit')
class Meta:
ordering = ['url']
#--------------------------------------------------------------------------<wbr></wbr>--
Second , write the view . You just need to write a function can
process the request .
The other thing "make_decorate" can take it over .
views.py:
#--------------------------------------------------------------------------<wbr></wbr>--
from models import PageAnalytic
from url_decorate import make_decorate
@make_decorate
def page_analytic(request):
page,is_create=PageAnalytic.objects.get_or_create(url=request.path)
page.visit+=1
page.save()
#--------------------------------------------------------------------------<wbr></wbr>--
At last , write two shortcuts
shortcuts.py:
#--------------------------------------------------------------------------<wbr></wbr>--
from url_decorate import url_decorate,patterns_decorate
from views import page_analytic
page_analytic_url=url_decorate(page_analytic)
page_analytic_patterns=patterns_decorate(page_analytic)
#--------------------------------------------------------------------------<wbr></wbr>--
Now , It's time to use this , we just accout the admin .
#--------------------------------------------------------------------------<wbr></wbr>--
from url_decorate.shortcuts import page_analytic_url
page_analytic_url(r'^admin/', include('django.contrib.admin.urls')),
)
发表评论
-
关于"Google限制Python"事件我的看法
2009-11-17 15:11 8395本来做一个勤勤恳恳的 ... -
python排版工具
2009-10-15 14:22 3513http://pypi.python.org/pypi/pyt ... -
Fast Asynchronous Python Web Server (Fapws is short)
2009-08-15 12:12 1866http://github.com/william-os4y/ ... -
python奇技淫巧
2009-07-23 22:27 2515http://wiki.python.org/moin/By ... -
跨平台 获取系统信息的python库 http://support.hyperic.com/disp
2009-06-12 11:49 3650The Sigar API provides a portab ... -
频繁集统计 python 封装
2009-05-29 15:49 2665封装的是附件这篇paper的count 因为对比发现这个的综合 ... -
libsvm (python封装) 学习笔记 1
2009-05-19 14:28 42452009-05-19 14:10:38 #!/usr/bin ... -
lcs.py 最长公共子串算法
2009-05-05 15:50 2982感觉用来匹配相似文件比最短编辑距离更靠谱,最短编辑应该是用来纠 ... -
lrucache.py 最近最少使用算法
2009-05-04 13:23 2921lrucache.py 最近最少使用算法 2009-05-04 ... -
史上最快 异步消息队列zeromq 简介
2009-04-30 21:40 27279是的,我喜欢Z开头的东西. http://www.zer ... -
相似单词
2009-03-18 00:54 1779给你一个单词a,如果通过交换单词中字母的顺序可以得到另外的单词 ... -
is_cn_char
2009-03-14 13:39 1352unicode码 def is_cn_char(i): ... -
写一个python的urldecode
2009-03-03 10:57 5128from urllib import unquote def ... -
今天才发现python的sort有个key参数,我好圡...
2009-02-28 20:59 3107>>> a=range(10) >& ... -
发一个山寨版python的Orm
2009-02-24 23:49 2247发一个山寨版的Orm 大概用法见 http://docs. ... -
pyrex学习笔记
2009-02-24 03:36 17050. easy_install pyrex 1.写pyrex ... -
python的一个有趣的细节
2009-02-24 02:00 1378python3.0一个有趣的细节 2009-02-24 01: ... -
python备玩候选者
2009-02-24 00:34 1709* 张沈鹏 推荐网址当然要有一个部署的东西 Exs ... -
python读取mp3 ID3信息
2009-02-18 16:57 2655pyid3不好用,常常有不认识的. mutagen不错,不过 ... -
又写了一个python的route模块
2009-01-14 01:18 2104是的 我很无聊
相关推荐
### Python中Django学习心得详解 #### 一、概述 本文档主要介绍Python中的Django Web应用框架的一些关键概念和技巧。Django是一款基于Python语言的开源Web开发框架,它遵循MVC(Model-View-Controller)设计模式,...
【标题】"主博客网站"通常指的是一个个人或组织用于发布技术文章、心得分享或行业动态的在线平台。这样的网站可以是自建的,也可以基于现有的博客服务...深入研究源代码,我们可以了解到更多关于项目的设计和实现细节。
【简易博客系统】是一个专为编程爱好者设计的初级博客平台,旨在提供一个...同时,对于有经验的开发者,也可以在此基础上进行二次开发,实现更多高级功能,比如SEO优化、多用户协作、文章分类等,进一步提升用户体验。
现代前端框架如React、Vue.js或Angular可以提高开发效率并提供更好的用户体验。 2. **后端开发**:后端处理数据存储、业务逻辑和服务器通信。常见的后端技术有Node.js、Python的Django或Flask框架、Java的Spring ...
作为一个独立开发的板块,论坛提供了用户交流的平台,用户可以就某一商品或相关话题展开深入讨论,提出疑问,分享心得,形成丰富的互动社区。论坛的设置增强了用户粘性,也提升了网站的活跃度。 从技术实现角度,...
【标题】"eduardo-blog:我的项目的个人博客...通过分析这个标题和描述,我们可以了解到这是一项使用Python开发的个人博客项目,涵盖了Web开发的多个层面,包括后端逻辑、数据库交互、前端展示以及部署与运维等知识。
【标题解析】 "Cook-Book:简单的MVC应用程序可跟踪和共享...综上所述,这个"简单MVC食谱应用"涵盖了从后端开发到前端交互,从数据管理到用户社交互动的多个层面,是一个综合性的项目,可以深入学习和实践多种IT技能。
7. **SEO优化**:为了让博客更容易被搜索引擎发现,源码可能包含了SEO(搜索引擎优化)的最佳实践,如元标签、友好的URL结构和Sitemap等。 8. **安全考虑**:考虑到用户登录和个人数据,博客源码可能包含了安全措施...
同时,考虑到SEO优化,可以使用合适的元标记和URL结构,使搜索引擎能更好地索引和展示社区食谱手册库的内容。 总之,社区食谱手册库项目涵盖了前端开发、后端开发、数据库管理和Web服务集成等多个方面,通过HTML等...
标题 "lisabeth22Tspu.github.io" 暗示这是一个个人或项目的GitHub Pages网站。GitHub Pages是GitHub提供的一项服务,用户可以免费托管...通过对压缩包内的文件进行解压和分析,可以更深入地了解这个网站的结构和内容。