1. js & jquery
- reverse: - jQuery.fn.reverse = [].reverse; 
- object exists: - jQuery.fn.exists = function(){ return this.length>0; }
- string format: - if (!String.prototype.format) { String.prototype.format = function() { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] != 'undefined'? args[number]: match; }); }; }
plugins > fileDownlad.js
2. django
- settings.py - current directory - import os APP_ROOT = os.path.dirname(__file__)
 
- models - dynamic file upload path - class THistory(models.Model): shop = models.ForeignKey('MShop') section = models.ForeignKey('MSection') revision = models.IntegerField() def get_upload_to(self,filename): ext = filename.split('.')[-1] filename = u'%s.%s' % (get_datetime_string(),ext) return os.path.join(self.default_upload_to,filename) filepath = models.FileField(upload_to=get_upload_to) user = models.ForeignKey('MUser',null=True,on_delete=models.SET_NULL) upload_date = models.DateTimeField(auto_now=True,auto_now_add=True) default_upload_to = 'excelfile'
 
- custom django user (method 1): - class MUser(User): objects = UserManager() display_name = models.CharField(max_length = 24, default='') permission_choices = ( ('1','admin'), ('2','normal'), ) permission= models.CharField(max_length= 5,choices=permission_choices) shop = models.ForeignKey('MShop',blank=True,null=True) def __unicode__(self): return self.usernam
3. views
- make download response - def generate_download_response(file_path,file_name): response = HttpResponse(readFile(file_path)) response['Content-Length'] = os.path.getsize(file_path) response['Content-type'] = 'application/vnd.ms-excel' response['Content-Disposition'] = 'attachment; filename="%s"' % file_name.encode('cp932') response.set_cookie('fileDownload','true',path='/') return respons def readFile(fn, buf_size=262144): f = open(fn, "rb") while True: c = f.read(buf_size) if c: yield c else: break f.close()
- custom 404,500 view - A).config in settings.py ->debug = False 
- B).config in urls.py -> handler404 = ‘webapp.views.handle_404_view’ handler500 = ‘webapp.views.handler_500_view 
- C).config in views.py -> - def handle_500_view(request): t = loader.get_template('500.html') type,value,tb = sys.exc_info() return HttpResponseServerError(t.render(RequestContext(request,{'excption_value':value}))) def handle_404_view(request): return render(request,'404.html',status=404
 
- formset 
- transactions 
- commands - start project - django-admin startproject projectname
- start application - django-admin startapp appname
- syncdb - python manage.py syncdb
- inspectdb - python manage.py inspectdb > filename.py
- run standalone - python manage.py runserver 0.0.0.0:portnumber
- run shell - python manage.py shell
- multipy database - python manage.py syncdb --database=databasename
 
- static file serve - config in settings.py - MEDIA_ROOT = os.path.join(APP_ROOT,'..\\donki-static') MEDIA_URL = '/excel/
- config in urls.py - url(r'^excel/(?P<path>.*)$', django.views.static.serve', {'document_root':MEDIA_ROOT})
 
- apache host - wsgi 
- sample virtualhost: - <VirtualHost *:80> ServerName donki.localhost WSGIScriptAlias / c:\sourcecode\donki\donki\wsgi.py <Directory c:\sourcecode\donki\donki> <Files wsgi.py> Order deny,allow Allow from all </Files> </Directory> Alias /static/ "c:/sourcecode/donki/webapp/static/" <Directory "c:/sourcecode/donki/webapp/static/"> Order deny,allow Allow from all </Directory> ErrorLog "c:\sourcecode\donki\logs\error.log" CustomLog "c:\sourcecode\donki\logs\access.log" common </VirtualHost>
- command: - httpd -t check #script syntax httpd -k restart #restart appache with information
 
3. python
* libs
    * MySQL-python
    * cx_Oracle
    * pywin32
* 3.x &2.x
4. office vba
- convert column to number - def conver_column_to_number(col_name): return reduce(lambda s,a:s*26+ord(a)-ord('A')+1,col_name,0)
- quick deal with cells - range = sheet.Range('start : end') details see in win32.py