在这里,我打用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 <a 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 />