今天偶然发现一个矿泉水瓶子上写着“今麦郎 统一”,这华龙和统一搞到一起还是第一次看见。回来在网上一搜,果然两家有合作。
不过最感动的倒不是他们的合作,而是这事让我觉得这矿泉水瓶子上做广告倒是个好地方。矿泉水本身低成本,一瓶也只要一元钱,而一张彩色胶版广告造价也不低,何不把广告印在矿泉水上,水即使免费发放也不错嘛。
装Python,装django (解压到Python安装目录,从cmd窗口进入django目录,输入python setup.py install),也可以再去下svn升级,详情http://www.djangoproject.com
Apache版本:apache_2.2.4-win32-x86-no_ssl.msi 下载地址:http://httpd.apache.org/
ModPython:mod_python-3.3.1.win32-py2.5-Apache2.2.exe 下载地址:http://www.apache.org/dist/httpd/modpython/win
依次安装上面两个东西,全部默认设置即可。
对于Apache,可安装到磁盘下较近的一个路径,如:c:\apache 以便日后修改配置时方便打开。
对于ModPython,它将使Apache支持django的运行,安装将近尾声时会提示选择Apache的安装目录,目的是为您配置httpd.conf,如果选错了也没有关系,可以在下面的配置中手动操作。
以下段落将参考(http://www.cnblogs.com/zhengyun_ustc/archive/2006/11/20/django_apache_win32.html http://thinkhole.org/wp/2006/04/03/django-on-windows-howto/)完成。
为了方便说明,用我的一个问卷调查为例:下载
先说明一下两个命名:
wenjuan: my project (django-admin.py statrproject wenjuan)
inves: a app in my project (wenjuan/django-admin.py startapp inves)
models.py 里面Subject是问卷主题(first是第一题的题号),Question是问题(number是手动设的题号,为了根据选项跳转方便),Answer是选项(next是选了这个选项后跳到下一题的题号)
为了和参考的那篇接近,可以将例程下载放在c:\django\下,这样就如 c:\django\wenjuan\inves
第一步我们来改一下wenjuan中的settings.py,首先配置好
DATABASE_ENGINE = ‘mysql’
DATABASE_NAME = ‘yourdatebase’
DATABASE_USER = ”
DATABASE_PASSWORD = ”
DATABASE_HOST = ”
DATABASE_PORT = ”
然后manage.py syncdb(也可以先用manage.py sqlall inves来看一下表的结构),
此后可用manage.py runserver打开调试服务器,进入:http://127.0.0.1:8000/admin/ 去填一些测试数据。然后访问:http://127.0.0.1:8000/1/ (其中1是问卷的id)
现在回到正题,接着为了部署继续修改settings.py主要改动是把原来开发过程中用的相对路径改成绝对路径。
主要有:
MEDIA_ROOT = ‘c:/django/wenjuan’
STATIC_PATH = ‘c:/django/wenjuan/media’
TEMPLATE_DIRS = (
‘c:/django/wenjuan/templates’,
)
请注意斜杠的方向。
接下来可以去修改Apache的配置文件httpd.conf了。它应该在Apache安装目录的con里面找到。
配置可能涉及到的参数主要有:
Listen (监听的端口号,前面也可以附上IP,默认就设成80吧)
ServerName (访问的入口,仍然是IP+端口,比如162.168.1.10:80或者是其他的)
DocumentRoot (Apache服务器的根,我把它设为"c:/django/")
然后就是需要添加的配置了:
首先检查LoadModule python_module modules/mod_python.so
如果没有就加上,位置挨着长得像的就行了
然后添加:(建议在配置文件最后,日后好找)
<Location "/">
SetHandler python-program
PythonPath "sys.path+[‘c:/django‘]"
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE wenjuan.settings
PythonInterpreter inves
PythonDebug On
</Location>
注意如果是正式发布就把里面的PythonDebug 置为Off
然后再添加:
Alias /site_media c:/django/wenjuan/media
<Location "/site_media/">
SetHandler None
</Location>
Alias /media c:/Django-0.95/django/contrib/admin/media (注意对应你装的django)
<Location "/media/">
SetHandler None
</Location>
<LocationMatch "(?i)\.(jpg|gif|png|txt|ico|pdf|css|jpeg)$">
SetHandler None
</LocationMatch>
重启Apache,浏览 http://localhost/1/
说明:可以通过http://localhost/single/1 一次打开所有问题,上一个是一题一题跳的。
对于所有类型字段都可用的一些属性:
null |
False |
|
blank |
|
用于表单校验 |
choices |
|
由二元组的可枚举集合(list或tuple或其他)所代表的字段可选值 class Foo(models.Model): GENDER_CHOICES = ( (‘M’, ‘Male’), (‘F’, ‘Female’), ) gender = models.CharField(maxlength=1, choices=GENDER_CHOICES) |
core |
|
以内联方式编辑对象 |
db_column |
|
用于标注对应于字段属性的数据库列名称 |
db_index |
|
为True则django-admin.py sqlindexes会为此语句输出一个CREATE INDEX语句 |
default |
|
默认值 |
editable |
True |
|
help_text |
|
用于显示在admin表单中的额外帮助信息 |
primary_key |
|
主键,一个object只能有一个主键 |
radio_admin |
|
默认情况下Django admin用下拉框来选择ForeighKey或choices |
unique |
|
该字段值在表中是唯一的,该选项同时约束在数据库级别和Djano admin表单中 |
unique_for_date |
|
Django admin表单验证,估计可防止重复提交 |
unique_for_month |
|
title(unique_for_month="pub_date") |
unique_for_year |
|
|
validator_list |
field_data/all_data |
django.core.validators |
下面是第二部分,基本类型大概就全了。
ImageField |
|
需要验证,即Python Imaging Library |
||||||
IntegerField |
|
|
||||||
IPAddressField |
|
|
||||||
NullBooleanField |
|
相当于设置了null=True的BooleanField |
||||||
PhoneNumberField |
|
美国电话号码格式 |
||||||
PositiveIntegerField |
|
正整数字段 |
||||||
PositiveSmallIntegerField |
|
小的正整数字段,取决于数据库特性 |
||||||
SlugField |
|
短标签,仅包含字母、数字、下划线、连字符,一般用于url |
||||||
SmallIntegerField |
|
小整数字段,依赖于数据库特性 |
||||||
TimeField |
|
|
||||||
URLField |
verify_exists(True),检查URL可用性 |
|
||||||
USStateField |
|
两个字母表示的美国州名字段 |
||||||
XMLField |
schema_path,必选 |
|
周末没事整理了一下Django Model的数据类型,发上来的时候才发现空间发表格太困难了,还要切开发。下面是第一部分:
AutoField |
|
IntegerField |
||||||
BooleanField |
true/false |
|
||||||
CharField |
maxlength,必填 |
|
||||||
TextField |
|
|
||||||
CommaSeparatedIntegerField |
maxlength,必填 |
逗号分隔 |
||||||
DateField |
|
|
||||||
DateTimeField |
|
|
||||||
EmailField |
|
|
||||||
FileField |
upload_to,可选 |
object.get_myfile_url |
||||||
FilePathField |
|
|
||||||
FloatField |
|
|
好久没上新浪了,突然被左边的一个flash广告吸引,看起来像个打乒乓球的小游戏,实际上你一旦单击也就激活了广告链接。
实在是个不错的创意,http://ad4.sina.com.cn/200704/20/89167_changhong_guonei_120240.swf,感兴趣的可以去看看。
不过有个bug,当球的轨迹一旦和桌面中线重合,你的拍子就不用移动了,球会一直往复下去。
樱花诗赛所写
大巴 发表于 2006-4-9 0:23:00
诗不是这个样子
大学之诗更加不是这个样子
大学之诗应是闻先生之诗,至少有闻先生之诗
激昂是你的主旋律
青年,让你的诗与你的血一起沸腾
让我从诗里看见你的刚强
让我从你的诗里看到国的希望
你的诗总是飞舞着天使
殊不知,你才是人间的天使
飞舞吧,青年,你的诗也要飞舞人间
让人间与你一同飞舞
我更希望闭着眼听你的诗
那诗里有你的梦乡
清静是你的归宿
我知道你是一个与我一样博爱的人
你总是在意每一个闪过眼前的异性
不管你是如何刻意强调一个朴素的形象
我知道你的多情与我一样
诗者,不必美丽;诵者,不必美丽。
诗者,用心;诵者,用心。
最恨无聊风雅人,只求听者一个“好”。
你可知何谓田园?
田园已非昨日田园
儿时爱嚼棘棘菜
儿时飞舞的蒲公英
我长大了,你们却在哪里
借着诗,让我道出我的心声
借着诗,倾泻我真的感情
诗里是我的实在
偶尔出现的美的字词
是我不得不说的爱
何尝不愿归田园
何尝不愿归山林
田园何在?山林何在?
诗也要道具吗?我不敢断言
把你请进我的诗里
实在是我的无奈
即使你拿走了我的生命
我依然甜蜜地叫着你的名
嘿,瞧我这短暂却像放着脉冲的星
坐在台阶上听着你的诗
却像坐在天涯
往后一步,同你一起用模糊的语言描绘世界
往前一步,同你一起用犀利的目光勾勒人间
看看这个结果,完全是搜索引擎的功劳,博客也是要用来写有用的东西的,尤其是百度的博客