![]() |
| 2012 三月全世界的網頁伺服器市佔率圖 from netcraft.com |
上圖可以看出歷久彌新的 Apache 持續雄距首位,有超過 15 年的時間,沒"器"可挑戰它的地位。直至 Nginx 的出現,或許它現在只有 10% ,但從各方評價看來,它絕對是 Apache 有史以來最強大的對手。短短 5 年,它已經爬上第 3 名的位子,從趨勢線上看來,要超越 IIS 也是有很大的機會。
閱讀更多…
沙箱是版本控制器的術語。
![]() |
| 2012 三月全世界的網頁伺服器市佔率圖 from netcraft.com |
DATABASES = {
'default': {
'NAME': 'xxx',
'USER': 'xxx',
'PASSWORD': 'xxx',
'ENGINE': 'mysql',
'OPTIONS': {
"init_command": "SET storage_engine=INNODB",
},
}
}
mysql> ALTER TABLE ????? ENGINE=INNODB;
mysql> \T /home/hoamon/alter.sql;
mysql> show tables;
mysql> \q;
sh# perl -i -pe 's/| +([^ ]+) +|/ALTER TABLE \1 ENGINE=INNODB;/g' /home/hoamon/alter.sql
sh# mysql -u xxx -pxxx xxx < /home/hoamn/alter.sql

def readReturnHttpRedirectWithPost(R):
if R.GET.get('var', None):
# do something what you want
return HttpResponse(json.write({'action': 'https://your.web.sitek/', 'vars': {'var1': 'var1', 'var2': 'var2'}}))
html = """
<html><head><script type="text/javascript" src="/media/jquery.ui-1.5.1/jquery-1.2.6.js"></script></head>
<body>
<ul><li><input type="text" id="var"></li>
<li><input type="submit" id="updateFormWithPost"></li></ul>
<form id="post_form" method="POST"></form>
<script>
$(document).ready(function(){
$('#updateFormWithPost').click(function(){
var value = $('#var').val();
$.getJSON('/u/readreturnhttpredirectwithpost/', {'var': value}, function(json){
var $post_form = $('#post_form');
$post_form.attr('action', json['action']);
for (var i in json['vars']){
var $input = $('<input type="hidden" name="'+i+'" value="'+json['vars'][i]+'">');
$post_form.append($input);
}
$post_form.submit();
});
});
});
</script>
</body>
</html>"""
return HttpResponse(html)
--- apps/supervise/views.py (revision 1256)
+++ apps/supervise/views.py (working copy)
@@ -145,7 +145,8 @@
if h.has_key('year') and h['year'] != '':
Y = Year.objects.get(id=h['year'])
try:
- sc = sc.filter(date__year=Y.date.year)
+ sc = sc.filter(date__get=datetime.date(Y.date.year, 1, 1),
+ date__lte=datetime.date(Y.date.year, 12, 31))
except:
pass
........
1 <VirtualHost *:80>
2 ServerName somedomain
3 <Location "/">
4 SetHandler python-program
5 PythonHandler django.core.handlers.modpython
6 PythonPath "['/path/to/djangoproject_parentpath'] + sys.path"
7 SetEnv PYTHON_EGG_CACHE /tmp
8 SetEnv DJANGO_SETTINGS_MODULE djangoprojectname.settings
9 PythonDebug Off
10 </Location>
11 Alias /media /path/to/djangoproject_parentpath/djangoprojectname/media
12 <Location "/media">
13 Options None
14 SetHandler None
15 </Location>
16 ErrorLog /var/log/apache2/somedomain_error.log
17 LogLevel warn
18 CustomLog /var/log/apache2/somedomain_access.log combined
19 </VirtualHost>
1 #!/usr/bin/env python
2 # -*- coding: utf8 -*-
3
4 import settings
5 from django.core.management import setup_environ
6 setup_environ(settings)
7 # before do something else,
8 # the there lines above here is your first operation.
9
10 from django.db.models import get_model
11 from datetime import date
12
13 if __name__ == '__main__':
14
15 # the 'tmp' is your project's name,
16 # and this script must place in the 'tmp' directory.
17 # the 'person' is your model's name.
18 Person = get_model('tmp', 'person')
19
20 # when you get the model,
21 # you can use it just like you use it in the view.py
22 P = Person(name='hoamon', birth=date(1977, 10, 18))
23 P.save()
24
25 for p in Person.objects.all():
26 if p.birth == date(1977, 10, 18):
27 print p.name
28
29 for p in Person.objects.filter(birth=date(1977, 10, 18)):
30 print p.name
使用 0.96 版有一個小麻煩,在 ubuntu 上所編入的 MySQLdb 是 1.2.1g3 版,但 0.96 要求使用 1.2.1p2 以上版本,這事不難辦,重裝一個 MySQLdb 就好了,問題是出在手動安裝 MySQLdb 套件時,需要使用 MySQL-server 的 mysql_config 指令,這個程式是包在 devel 套件中時,在 ubuntu 中,它的名字叫 libmysqlclient15-dev ,在 fedora 中,它叫作 mysql-devel 。麻煩的地方就在這, mysql_config 與 mysql-devel 兩個字看起來沒關係,所以我花了一段時間,才找到應該要裝的是這個套件。詳細指令如下:
$ sudo apt-get install libmysqlclient15-dev
$ cd MySQLdb-1.2.2 ; # edit site.cfg; set mysql_config=/usr/bin/mysql_config
$ sudo python setup.py install