Tag: Python

  • 偷闲,写了个初级二叉树排序

    二叉树是计算机算法中普遍采用的数据结构。在所有排序算法中具有高效率的二叉树排序就是基于此结构。我抽空用新学的Python写了一个试试: class node: left = None right = None value = 0 def __init__(self, v): self.value = v def walk(self): r = [] if self.left: r.extend(self.left.walk()) r.append(self.value) if self.right: r.extend(self.right.walk()) return r def insert(self, n): if self.value < n: if self.right: self.right.insert(n) else: self.right = node(n) else: if self.left: self.left.insert(n) else: self.left = node(n) if…

  • Python+Django笔记之三

    关于urls.py 假设test项目下有一个应用模块notes,那么: test/urls.py: from django.conf.urls.defaults import * urlpatterns = patterns(‘ ‘, (r’^notes/’, include(‘notes.urls’)), … ) 这样所有匹配/notes/*的访问将转交给notes/urls.py处理。 test/notes/urls.py: … urlpatterns = patterns(‘ ‘, url(r’^list/$’, views.list_notes, name=’note_list’), url(r’^(?P<note_id>\d+)/$’, views.show_note, name=’note_show’), ) 首先,由于需要反向解析(页面名称->URL),所以要使用url(),而不是原来的tuple。对应url(r’^list/$’, views.list_notes, name=’note_list’), 将匹配/notes/list/的访问指向给views.py中的list_notes()方法,并将’note_list’名称反向解析到/notes/list/的URL,以便在webapp中生成链接。 第二行中的(?P<note_id>\d+)是一个参数定义,其中note_id是参数名,\d+说明此参数是一个数字。其实起到的作用就是将/note/123/这样的url解释成一个调用show_note(request, note_id=123)。如果参数不是数字而是字词,那么\d+应该改为\w+,具体定义可以参考regex规则。

  • 带着小抄去上班

    你上考场那年带小抄了么?带了也别说,那是作弊。不过上班跟考试不同,你要尽可能的用上一切能方便工作的工具。下面是我最近喜欢的几张小抄: 以上小抄来自 http://www.addedbytes.com/cheat-sheets Thanks Dave!

  • Python+Django笔记之二

    一个简单的select * 操作的Django方式: 首先配置urls.py from django.conf.urls.defaults import * from misc import views urlpatterns = patterns(‘ ‘, (r’^notes/$’, views.list_notes), ) 其中r’^notes/$’是regex,用于匹配url;views.list_notes是views.py中的list_notes 方法。 然后写list_notes: def list_notes(request): notes = Note.objects.order_by(‘-created_date’) conduit = { ‘notes’: notes } return render_to_response( ‘misc/list.html’, conduit, context_instance = RequestContext(request), ) 其中conduit这个词来自Mass Effect 🙂 最后就是把上面的misc/list.html写出来: {% extends “base.html” %} {% block title %}List Notes –…

  • Python+Django笔记之一

    副标题:PGB: Project Galactica Board 启动 从无到有启动一个Django project(Django发音类似Jungle),以pgb为例: >django-admin.py startproject pgb 设置数据库连接: >vim pgb/settings.py DATABASE_ENGINE = ‘mysql’           # ‘postgresql_psycopg2’, ‘postgresql’, ‘mysql’, ‘sqlite3’ or ‘oracle’. DATABASE_NAME = ‘pgb’             # Or path to database file if using sqlite3. DATABASE_USER = ‘root’             # Not used with sqlite3. DATABASE_PASSWORD = ‘xxxxxx’         # Not used with sqlite3. 建立一个app(app可以看作项目的一个模块,一个app是一系列相关功能的集合,而且可以被多个project共用): >cd pgb >python…