首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > windows >

windows上创建你的第一个Django应用

2012-12-20 
windows下创建你的第一个Django应用??? 本来哥们一直用PYTHON作为脚本工具来快速开发的,方便与否就不多修

windows下创建你的第一个Django应用

??? 本来哥们一直用PYTHON作为脚本工具来快速开发的,方便与否就不多修饰了,简直就是NB嘛,不过..这几天遇到个问题,就是要把一些内容“展示”出来给非编程人员看,这就让我有点郁闷了,的确总不能让人家登陆服务器然后运行脚本看结果吧,于是乎打算玩玩django,它的作用这里不多说了,本文内容主要是如何建立一个Django应用。

?

??? PS:此篇仅是个开始,估计下一篇应该是如何在apache下运行django吧,具体我现在还不清楚呢,等哥们调研完了再写哈,或者大家有好文章推荐给我最好了。。一起学习一起分享

?

本文主要参考了IBM的基于 Django 框架的敏捷 Web 开发一文:http://www.ibm.com/developerworks/cn/opensource/os-cn-django/index.html、和官方文档:http://docs.djangoproject.com/en/dev/intro/tutorial01/

?

我的python:2.5版本的,django目前最新:1.2.4,环境:windows,db:mysql

?

?

好啦开始说了:

?

一.首先从官方网站下载Django包

?

???? 解压后进入Django目录,在命令行里执行python setup.py install,这样Django就会作为第三方模块被安装在Python的site-packages目录中,然后把Django中bin目录的路径添加到环境变量path里面,这样在命令行里就可以方便的使用Django提供的各种指令。本应用实例将创建实现一个新闻公告牌,用户可以从后台添加新闻分类和条目,然后在前端页面中显示新闻的统计信息。

?

?

二。新建你的APP

?

打开命令提示符,进入到想要创建应用的目录,键入django-admin.py startproject news命令,调用Django的控制台命令新建一个名为news的工程,与此同时Django还在新创建的news文件夹下生成以下四个分工不同的文件。

__init__.py
文件__init__.py可以向Python编译器表明当前文件夹下的内容是Python工程模块。
2.manage.py
manage.py是Python脚本文件,与Django的命令行工具django-admin.py配合,可以对建立的工程进行管理配置。
settings.py
这是Django工程的配置文件,与工程相关的工程模块和数据库全局配置信息都在settings.py中设置。
urls.py
文件urls.py负责配置URL的地址映射以及管理URL的地址格式。

三。看看效果

?

键入命令manage.py runserver,就可以启动Web服务器来测试新建立的工程,如果启动没有错误,将可以看到下面这样的提示信息:“Development server is running at http://127.0.0.1:8000/” 表示当前工程已经可以通过本机的8000端口访问。在命令行里使用Ctrl+Break或Ctrl+C的组合键可以停止runserver命令启动的Web服务器。当然,Django自带的Web服务器一般只是在开发测试的过程中使用,真正部署使用的时候要用到APACHE了,这里不讲解哈,稍等。。。不同的端口下运行命令:python manage.py runserver 8080

?

?

四。编写Django的应用

?

接下来就可以编写Django的应用模块。键入命令python manage.py startapp article,命令会在当前工程下生成一个名为article的模块,目录下除了标识Python模块的__init__.py文件,还有额外的两个文件models.py和views.py。

在当前的工程中,需要有两个Models模型,分别对应List表和Item表,用来存储新闻的分类和新闻的条目,每个Item项都会有一个外键来标记文章的归属分类。下面打开Django创建的models.py文件,按照文件注释中提示的模块添加位置,编写如下的代码:

?

在使用MySQL数据库时,需要额外安装MySQL的Python链接库MySQLdb,这个模块可以在站点http://sourceforge.net/projects/mysql-python/下载,注意:一定下载的包与你的python版本和mysql版本相适合

接下来的DATABASE_USER和DATABASE_PASSWORD两项内容则需要用户根据本机设置填写访问数据库的用户名和密码。如果数据库安装在其他机器上或者更改了数据库的监听端口,则还需要设置DATABASE_HOST地址和DATABASE_PORT项:

?

?

?

注意:如果你此刻未看见article标签及items和lists,那么需要在news目录下建立admin.py文件,里面内容:

?

?

?

一般来说,Django的模板代码和普通的HTML代码看上去没有太大差别,只是添加了Django特定的模板标记,这些标记允许开发者为Django模板添加页面逻辑,比方说将views.py中render_to_response函数返回的数据库结果集显示在页面中,Django特有的标签在模板页里以“{%”作为开始并以“%}”作为结束。嵌入Django模板的变量则以“{{”作为开始并以“}}”结束。

在上面的模板代码里面,用到了标记{% for news_dict in article_listing %}以及{% endfor %}。这样的标记告诉Django模板处理机制循环取出news中的item项输出在页面中,在for循环内部,通过article_listing的属性得到View中对应的数据项字段的值并显示每个news项的Title标题以及news中的item项数目。

当Django的View和Template都已经准备妥当,下面仅需要几步配置来告诉Django存储工程应用的模板位置,这需要对配置文件setting.py中的TEMPLATE_DIRS项进行设置。在本例中加入模板文件"news_report.html"的存储路径就可以让Django把对View进行处理的结果集通过指定模板返回。按照本例应用的结构,TEMPLATE_DIRS参数的内容设置为:

?

'./article/templates',

这里不要忘记Django需要在路径的最末尾添加一个逗号。接下来仅需要设置访问article时的URL转向地址就可以。打开urls.py文件,在admin后台管理的转向地址下一行添加如下语句:

?

(r'^report/$', 'news.article.views.news_report'),

在这里语段的最末尾,也需要有逗号标记段落的结束。在这里可以看到,Django的URL转发设计的非常简洁,在配置文件urls.py中对应于view的转发请求都由两部分组成,第一部分遵循正则表达式指定相匹配的URL地址,第二部分是对应在View里面处理转发请求的函数。

完成了这些步骤,就可以在命令提示符下再次启动Django服务器,看一下上述努力的成果了,在浏览器中打开链接http://127.0.0.1:8000/report/,将会看到新闻列表的返回界面。页面中显示了数据库中已添加所有新闻的分类统计信息。值得一提的是,Django模板支持多层嵌套,并且每一层都可以使用DIV+CSS方式完成布局,可以方便的让站点页面遵循统一风格,看起来美观大方。


?

热点排行