??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品国产九九九,成人频在线观看,成人精品免费视频http://www.aygfsteel.com/glorywine/category/32061.htmlzh-cnTue, 16 Sep 2008 19:15:16 GMTTue, 16 Sep 2008 19:15:16 GMT60Django on Jythonhttp://www.aygfsteel.com/glorywine/archive/2008/09/17/229275.htmlglorywineglorywineTue, 16 Sep 2008 16:41:00 GMThttp://www.aygfsteel.com/glorywine/archive/2008/09/17/229275.htmlhttp://www.aygfsteel.com/glorywine/comments/229275.htmlhttp://www.aygfsteel.com/glorywine/archive/2008/09/17/229275.html#Feedback0http://www.aygfsteel.com/glorywine/comments/commentRss/229275.htmlhttp://www.aygfsteel.com/glorywine/services/trackbacks/229275.html   使用Django已经一D|间了Q非常喜Ƣ这L状态,很少的配|文件和代码Q就可以样一个原型跑h?.0已经发布一D|间了Q有了很多的改变Q改q,很吸引眼球。但是还有一个特性非常吸引我QDjango可以q行在Jython上了Q这意味着Q可以在Tomcat,Glassfish{服务器上跑Django了,EXCITING?

   OK, Let's give a shot!
   1. of course, 先要现在Django
Q?font size="2" face="Courier New">不过我还是推荐用svn中的代码?div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;">svn co http://code.djangoproject.com/svn/django/trunk/ django-dev   2. 接着p下蝲Jython了,当前的stable版本?.2.1Q而我们需要的?.5Q该版本q是alpha阶段Q所以,q是从svn中获取?br />
svn co https://jython.svn.sourceforge.net/svnroot/jython/trunk/jython/ jython-dev
   完成了Jython的检出,开始编译工作。需要指出的是,我们在这里用ant来构建JythonQ当Ӟ也可以选择mavenQ看个h习惯了,ant和maven的具体安装方法大家可以去googleQ这里不再篏q?br />
cd jython-dev
ant
   E等片刻Q就可以完成~译工作了,生成的文件在jython-dev下的dist文g夹下。然后,我将dist下的文g全部拯到D:/jython下,我在q里使用的是windowsQ大家可以根据自qq_q行讄?br />   Z能在console里用JythonQ我们还需要将jython目录下的bin文gҎ加到path。这里大家也可以去googleQ不再多说。现在打开一个consoleQ输入jythonQ是不是能看到非常熟悉的Qpython控制台呢Q?br />   3. 好的Q现在就需要安装Django了?br />
cd django-dev
jython setup.py build
jython setup.py install
   安装完成后,可以在jython/Lib/site-packages下看到Django了。ؓ了查看是否安装成功,使用下面的方法。打开控制収ͼ
D:\>jython
Jython 
2.5a3+ (trunk, ???? 16 200818:50:22)
[Java HotSpot(TM) Client VM (Sun Microsystems Inc.)] on java1.
6.0_10-beta
Type 
"help""copyright""credits" or "license" for more information.
>>> import django
>>> django.get_version()
u
'1.0-post-release-SVN-SVN-unknown'
   如果看到了最后的输出pC安装成功了?br />   4. 当前Django on Jython只支持postgresqlQ所以,我们q里q需要下载一个LibQDjango-Jython.
svn co http://django-jython.googlecode.com/svn/trunk/ django-jython
cd django-jython
jython setup.py build
jython setup.py install
   q样完成了django-jython的安装?br />   5. 最后就是安装postgresql数据库了Q大家可以根据官方的文q行安装?br />
   万事俱备Q让我们开始真正的Django on Jython之旅吧?br />   q里q需要说明一点,在完成Django的安装之后,在jython/bin下会有一个django-admin.pyQ这个是Django命o的工PZ同CPython下的Djangoq行区别Q我在这里将光命名为django-admin-jy.py?br />   好,切换到工作目录?br />
django-admin-jy.py startproject djangonjython
   是不是有djangonjythonq个目录出现呢?对了Q这是我们创徏的工E?br />   如果你是一个急性子Q那么就让我们尝试一下,看看是不是能够运行呢Q?br />
cd djangonjython
jython manage.py runserver
   熟悉的页面是否出现呢Q?br />
runserver.PNG
   在观察一下djangonjython目录里的文gQ哈Q没有了.pycQ改成了.classQ确实是jython在工作了?br />   如果只是q行q么一个东西,肯定没有什么hg。OKQlet's build an application。我们在q里创徏一个简单的blogQ老生常谈?)Q?br />
jython manage.py startapp blog
   q样完成了app的创建,当然在djangonjython下应该多了一个blog文g夹,里面q包含了一些文件?br />   首先修改models.pyQ内容如下:
 1 from django.db import models
 2 from django.contrib.auth.models import User
 3 
 4 class Entry(models.Model):
 5     STATUS_CHOICES = (
 6         (0, 'live'),
 7         (1'draft'),
 8         (2'cancel'),
 9     )
10     author = models.ForeignKey(User)
11     title = models.CharField(max_length=255)
12     slug = models.SlugField()
13     content = models.TextField()
14     create_at = models.DateTimeField(auto_now_add=True)
15     status = models.IntegerField(default=0, choices=STATUS_CHOICES)
16     
17     def __unicode__(self):
18         return self.title
19         
20     def get_absolute_url(self):
21         return '/blog/%s' % (self.slug)
22         
23     class Meta:
24         ordering = ['-create_at']
   q只是一个非常简单的原型Q说明问题就行了。好Q既然用了Django 1.0那么p有一些改变,现在的Django使用了newform-adminQ那么就在blog目录下创建admin.py文gQ内容如下:
 1 from django.contrib import admin
 2 
 3 from djangonjython.blog.models import Entry
 4 
 5 class EntryAdmin(admin.ModelAdmin):
 6     list_display = ('title''author''create_at''status',)
 7     ordering = ['-create_at']
 8     list_filter = ('author''status',)
 9     prepopulated_fields = {'slug': ('title',),}
10     
11 admin.site.register(Entry, EntryAdmin)
   q样将Entry注册Cadmin site里,可以在admin page里进行管理了?br />   再进一步之前,先启动先前安装的postgresqlQ创建database blog。完成之后,p寚w目进行一些配|了?br />   首先是djangonjython目录下的urls.py
   取消q几行的注释Q?div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;">from django.contrib import admin
admin.autodiscover()

(r
'^admin/(.*)', admin.site.root),
   为的是能够访问到admin page.
   接着是settings.pyQ?div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;">DATABASE_ENGINE = 'doj.backends.zxjdbc.postgresql'           # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
DATABASE_NAME = 'blog'             # Or path to database file if using sqlite3.
DATABASE_USER = 'yourname'             # Not used with sqlite3.
DATABASE_PASSWORD = 'yourpassword'         # Not used with sqlite3.
DATABASE_HOST = ''             # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = ''             # Set to empty string for default. Not used with sqlite3.

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.admin',
    'djangonjython.blog',
    'doj',
)


   对上面的代买q行一些说明:
   doj.backends.zxjdbc.postgresql是之前安装的django-jython提供的数据支持,当然Q要使用q个Q必ddojq个库添加到PYTHONPATH中,所以在下面的INSTALLED_APPS里,加入了dojQ而djangonjyton.blog是之前创徏的app?br />   好,完成了这些,可以开始数据库的创Z。熟悉的命oQ?br />
jython manage.py syncdb
   按照上面的提C,一步一步的q行填写。完成之后,启动服务Q是不是又是一个熟悉的画面Q?br />
   填写之前要求的管理员用户名和密码Q就q入Cadmin pageQ我习惯U后台管理页面?/font>
   好了Q在q里可以添加一些entry了。完成了后台的管理,让我们添加一些前台的昄吧?/font>
   在这里,我打用django自带的generic viewsQ用v来非常的单。ؓ了同目的urls.py区别开Q在blog下创Z个新的urls.pyQ内容如下:
 1 from django.conf.urls.defaults import *
 2 
 3 from djangonjython.blog.models import Entry
 4 
 5 entry_dict = {
 6     'queryset': Entry.objects.all(),
 7     'template_object_name''entry',
 8 }
 9 
10 urlpatterns = patterns('django.views.generic.list_detail',
11     (r'^blog/$''object_list', entry_dict),
12     (r'^blog/(?P<slug>.*)/$''object_detail', entry_dict),
13 )
14 
   然后p修改目目录下的urls.py了,?r'^admin/(.*)', admin.site.root)之前dQ?br />
(r'', include('djangonjython.blog.urls')),
   接着pd模板文g了,在blog目录下创建templates/blogq样的目录,然后再里面添加entry_list.html和entry_detail.html两个文gQ内容分别如下:
entry_list.html
1 {% if entry_list %}
2     {% for entry in entry_list %}
3         <href="/blog/{{ entry.slug }}"><h3>{{ entry.title }}</h3></a> Post at: {{ entry.create_at|date:"Y-b-d" }}<hr/>
4     {% endfor %}
5 {% endif %}
entry_detail.html
1 {% if entry %}
2     <span style="color: green;">{{ entry.title }}</span><br/><br/>
3     post by: <b>{{ entry.author.username }}</b><br/><br/>
4     <div style="color: blue">{{ entry.content|safe }}</div>
5 {% endif %}
   完成了这些之后,p告诉djangoQ怎么处理了,也就是要修改settings.py了:
import os
PROJECT_ROOT 
= os.path.abspath(__file__)
TEMPLATE_DIRS 
= (
    os.path.join(PROJECT_ROOT, 
'blog/templates'),
)
   d前面两句Q修改后面的TEMPLATE_DIRSQ告诉django到哪里去找模板文件?br />   重新启动服务器,输入http://localhost:8000/blog/Q就可以看到一个简单的blog列表了,如果有的话。点ȝ应的标题Q就会进入到具体的entry了?br />   到这里位|,一个简单的blogq是创建好了。我们的目的主要是要看他在其他的服务器上是否能够q行Q好的,q里pq行打包处理了?br />   django-jython提供了一个war命oQ会我们的工程打包成war包,方便部v。不qdjango-jython有一个小的bug。找到jython/Lib/site-packages/doj/manamgement/commands/war.pyQ在该文件的W?28行,原来是:
if dest_relative_path[-1== '/':
   现在我们要将其改为:
if dest_relative_path[-1== os.path.sep:
   因ؓ在windows下得到的?\\'而不?/'Q所以执行的时候会出错Q可能开发者没有在windows下进行测试,所以出Cq样的情c?br />   接着Q我们需要链接postgresql的jdbc包,大家可以在这里下?a >postgres-jdbc。下载后Q将其放在项目目录下Q开始打包:
jython manage.py war --include-java-libs=./postgresql-8.3-603.jdbc4.jar
   q一D|_可以在目的上一U目录看到djangonjython.war
   到这里,javaE序员就可以使用熟悉的java web serverq行部v了!部v完成后,输入http://localhost:8080/djangonjython/blog/可以进行访问了?br />   q里l出一些在tomcat上运行的截图Q?br />
admin_page.PNG
backend.PNG
   怎么P感觉q是不错吧?br />   其实QDjango on Jythonq有很长的\要走Q要支持更多的主数据库Q以及运行效率等问题。不q还是非常期待,希望能够快速的发展Q毕竟Django的开发效率要q远高于Java。So let's look forward to it!






glorywine 2008-09-17 00:41 发表评论
]]>
Django Docshttp://www.aygfsteel.com/glorywine/archive/2008/08/24/223987.htmlglorywineglorywineSun, 24 Aug 2008 07:17:00 GMThttp://www.aygfsteel.com/glorywine/archive/2008/08/24/223987.htmlhttp://www.aygfsteel.com/glorywine/comments/223987.htmlhttp://www.aygfsteel.com/glorywine/archive/2008/08/24/223987.html#Feedback0http://www.aygfsteel.com/glorywine/comments/commentRss/223987.htmlhttp://www.aygfsteel.com/glorywine/services/trackbacks/223987.html       其实, 在django的svn repository? 有相应的docs, 不过是txt格式? 如果览q个, 当然会非常的别扭.
       今天看到, django对docsq行了重? 现在大家可以这些文件下载到本地, 然后q行~译, 生成相应的文? 览h会非常方? 舒服.

       ? 我们单的看一看该如何操作:
1. 从svn库中checkout:
svn co http://code.djangoproject.com/svn/django/trunk/docs/ django_docs
       q样, 在当前目录下׃有了django_docs? q去看一? ? 重构后结构果然清晰多?  q去是一股脑所有的文g攑֜一? 现在是分门别c? 不错.

2. 安装Sphinx:
easy_install Sphinx
        当然前提是python中已l安装了easy_install, 如果没有, 大家google一? 非常Ҏ.
        熟悉python的朋友应该知? Sphinx是非常好的一个工? 可以简单文本格式{换ؓhtml格式, 当然, 文本内容需要按照Sphinx的语法进行编? Python现在的在Udocuments是使用Sphinxq行~译?感兴的朋友可以?a >Sphinx了解更多内容.

3. ~译:
make html
        q里make提供了很多种格式, 因ؓ我们只需要html, 所以加上这个选项p?
        到这? 完成了django_docs的编译工? 在django_docs/_build/html下就是编译的l果. 重构后的文的css也有了新的变? 现在的非常像django_book的样?
        OK, 以后我们可以在本地q行文的阅M, 怿会给开发带来事半功倍的效果.
       
        q里我附上一份我~译好的, 供大家下? django_docs


glorywine 2008-08-24 15:17 发表评论
]]>
վ֩ģ壺 | | | ɽ| | | ƽ| ƽ| ׿| | û| | | ƺ| ̫| | | | Ž| ʡ| | | | | ء| | Դ| ˮ| | ߺ| ¡| | ϻ| | ϸ| | Դ| | ޵| | Ӧ|