`
yessir163
  • 浏览: 33694 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

我的第一个Django应用

阅读更多
业余时间自学Python,通常都是做些简单的文本替换、查找和简单的shell脚本。之前都是用bash和perl。bash的功能弱了点儿,perl的语法太难记,都放弃了。遇到python后发现上手很容易,功能比较强,挺喜欢的,就一边用一边学,断断续续也有3年了。(惭愧,3年了还徘徊在入门水平

第一个稍微像样点儿的python程序,是一个嵌入式项目的daily build脚本。当时项目的编译比较花时间,大概需要半个小时才能编译完。再加上生成image的环境也比较复杂,需要一个能自动编译和生成image的工具。那会儿刚看完Learning Python,对Python还没啥感觉,基本上是把以前写bash脚本的方法,直接搬过来写。现在看来,那代码是惨不忍睹了。不过当时是比较满意的,因为能很正常的完成任务。那个工具一直正常服役到整个部门被解散掉。

接下来开始对wxPython发生兴趣。这时正好碰上组里头有人有一个小小的需求,需要把大量的GPS数据导成KML文件。说白了,也就是很简单的文本解析和KML文件生成,拿python做这个太easy了。正好对wxPython也一知半解,拿来练手不错。于是东拼西凑的,弄出了一个GUI版的工具,没想到竟然挺受欢迎的。于是需求不断涌来,几个型号产品生成的数据(格式相差还挺大)都有相同的需要,大家都说去,找他要个工具。

用的人多了,麻烦也来了。组里就我一个人用python,不可能让每个人都装一套python的环境吧,人家就要一个小工具,你动辄就要人家装个几十MB的软件,大家都麻烦。这时想的第一件事就是怎么能轻松发布。Google了一番后,找到了py2exe,直接把python的程序和所需的环境转成windows下可发布的东西。600来行的代码要发布近15M的东西,虽然不太满意,但终归比较方便了。

没多久,麻烦事儿又来了。数据生成端随着项目的进展在不断变化,我这工具也要跟着不断更新。怎么把更新后的软件丢给使用工具的人呢?总不至于为了这么小个软件搞个自动升级吧。说来也是机缘巧合,正巧这时开始对web发生兴趣,如果把这个工具搞成web app,就可以解决这个问题了。随便Goolge一下,一大堆推荐Django的文章,都说上手如何之快,功能如何之强,甚至于搞个视频20分钟给你建一个blog应用出来,那是相当的诱惑啊。于是找了本Django的书(也巧,那时正好Django的第一本中文书也出版了),翻了一遍,虽然基本没动手,但是看起来确实是比较适合我这种水平和需求。

工具定下来了,接下来就是动手了。目标明确,步骤也不复杂。只要将原来的桌面GUI的东东转成web界面,底下解析和文件生成的部分,变化基本不大。知易行难,前前后后也花了10个工作日,呵呵,远不像人家20分钟搞定一个blog那么轻松。但从最后的结果来看,Django的确是个很棒的东东。如果你像我一样,只会一点点Python的基本语法,从来没有做过web开发,仅仅了解一点html和极少的css,Django会给你一双翅膀。

整个工作大致分为几个阶段:
  1. 建立数据模型和视图。
    • 因为目标比较简单,需要保存在数据库里东西很少,而且关系简单明确(many to many)。因此数据模型只要处理很简单的东西就好,启用Django的admin后,已经可以满足我的需要。
    • 这一阶段主要纠结在如何使用form,如何将原GUI选项转换成web的form,怎样处理post数据。
  2. 处理文件上传。对于desktop版,这个比较简单,只要简单的读取文件操作就好。转到web后,当文件很大的时候,数据会分段传进来。因此这一阶段主要花时间在文件拼接和分段解析处理。
  3. 页面布局和美化。由于没有什么web开发经验,css也不大懂。这个阶段基本就是照抄Django官网的css和页面布局 。按照输入数据和输出数据,修改模板。
  4. 发布。在开发环境下都调试好后,发布竟然用了整整一天。基本上问题都出在代码中使用了相对路径,最后都改成了绝对路径。另外就是在apahce中处理一些静态文件的发布。


总的来说,这次试用Django的过程还是蛮令人兴奋的,结果也还不错。对于web开发,Django确实是个不错的工具。
0
0
分享到:
评论

相关推荐

    写你的第一个Django应用.pdf

    综上所述,本文档提供了创建第一个Django应用的基本步骤,涵盖了环境配置、项目创建、数据库配置与模型创建等多个方面。通过这些基础知识的学习,读者可以进一步深入探索Django框架的各种高级特性,并构建出更为复杂...

    编写第一个 Django 应用1.pdf

    编写第一个 Django 应用1

    写你的第一个Django应用源码

    本教程将带你逐步了解如何编写你的第一个Django应用,即“mysite”。我们将探讨Django的基本概念,包括项目的创建、应用的设定、模型、视图、模板以及URL配置。 1. **创建Django项目** 首先,确保已经安装了Django...

    写你的第一个Django应用(中文高清PDF)

    以上步骤概述了如何创建第一个Django应用的基本流程,包括环境搭建、项目创建、服务器启动、数据库配置以及模型定义等关键环节。通过实践这些步骤,可以更好地理解和掌握Django框架的基础知识。

    python Django第一个程序

    本教程将带你一起创建你的第一个Django程序,让我们深入了解一下这个过程。 首先,你需要确保已经安装了Python和Django。Python是Django的基础,而Django则通过pip(Python的包管理器)进行安装。在命令行中运行...

    基于Django快速开发Web应用

    Django是一个高级的Python Web框架,它鼓励快速开发和实用主义编程。这个框架的设计理念是“少代码,多成就”,使得开发者能够以高效的方式构建功能丰富的Web应用。 **一、Django核心概念** 1. **模型(Models)**...

    Python——django入门教程PPT课件.pptx

    本文将详细介绍 Python 中的 Django 开发框架,包括 Django 的历史、设计哲学、MVC 和 MTV 设计模式、环境搭建、第一个 Django 应用等知识点。 Django 简介 Django 是一个由 Python 编写的开源的 Web 应用框架。...

    Django是一个开放源代码的Web应用框架

    Django的admin应用可以快速生成一个管理界面,供开发者或授权用户管理网站内容。只需简单的注册模型,即可自动创建 CRUD(创建、读取、更新、删除)操作。 9. 中间件(Middleware): 中间件是Django的一种独特...

    编写一个Django程序.doc

    【Django程序开发详解】 Django是一个强大的Python Web框架,用于快速开发安全且易于维护的网站。本教程将引导你创建一个基础的投票应用,它...Django提供了丰富的功能和第三方库,使得开发复杂Web应用变得简单高效。

    Python-一个Django应用可以轻松地为项目中的模型添加复杂的搜索功能

    标题所提及的"Python-一个Django应用可以轻松地为项目中的模型添加复杂的搜索功能",这通常指的是Django中的一种第三方库或插件,可能如`django-filter`、`django-haystack`等,它们旨在简化数据的查询和过滤过程。...

    Python Django Web典型模块开发实战_用Django REST framework实现豆瓣API应用项目.pdf

    **Python Django Web典型模块开发实战** - 这个主题涵盖了使用Python的Django框架进行Web应用开发的实践项目。Django是一个高级的Python Web框架,它鼓励快速开发和干净、实用的设计。通过使用Django,开发者可以...

    django4.1中文手册

    进阶教程: 如何编写可复用的应用 | 提交你的第一个 Django 补丁 获取帮助¶ 遇到问题?我们可以帮你! 试试 FAQ —— 这里有很多常见问题的解答。 正在寻找特定的信息?试试 索引,模块索引 或者 详细内容目录。 ...

    Django Web开发指南.pdf

    Django拥有一个庞大的第三方生态系统,提供了各种各样的扩展和应用: - 如何查找和使用第三方包。 - 如何开发Django的扩展应用。 由于提供的部分内容并不是标准的文本信息,所以无法从上述“部分内容”中提炼出...

    《Django实战》源码(第一、第二版) .zip

    它涵盖了从基础到高级的Django应用开发,旨在帮助读者快速掌握Django并能够实际应用到项目中。源码包包含了第一版和第二版的实践项目,是理论与实践结合的宝贵资源。 在Django实战的源码中,你可以学到以下几个重要...

    Atom-atom-django,使用atom更快地构建django应用程序。对Zacharytamas/Atom的贡献.zip

    标题"Atom-atom-django,使用atom更快地构建django应用程序"指出,这个项目或资源是关于如何使用Atom文本编辑器来高效地开发Django Web应用程序的。Atom是一个流行的开源文本编辑器,它允许开发者利用Web技术进行...

    Python-schedulertweet定时发tweet的Django应用

    【Python-schedulertweet定时发tweet的Django应用】 这个项目是一个基于Python的Django框架构建的应用,其主要功能是实现定时发送tweet的功能。在深入探讨这个应用之前,我们首先需要了解Python和Django的基本知识...

    django+cas环境部署

    1. **Django应用**:作为业务逻辑的核心部分,Django应用通过UWSGI与Nginx配合工作,提供HTTP服务。Django应用监听端口5050。 2. **Nginx**:作为前端的负载均衡器和反向代理服务器,Nginx监听外部端口8000,并将...

    django笔记 django笔记

    Django是Python编程语言中的一款强大且流行的Web框架,它以“快速开发”和“约定优于配置”的理念为核心,让开发者能够高效地构建高质量的Web应用程序。本笔记将深入探讨Django的基础概念、核心功能以及实际应用。 ...

    Django1.5 官方入门教程第1部分中文版

    在本篇"Django1.5 官方入门教程第1部分中文版"中,我们将学习如何使用Django框架创建一个基础的投票应用。这个应用由两部分组成:一个供公众查看和参与投票的前端网站,以及一个用于管理投票的后台管理界面。教程的...

    The Django Book(第一版 中文高清版)

    根据提供的文件信息,以下是对《The Django Book(第一版 中文高清版)》的内容知识点的详细解读: 首先,《The Django Book(第一版 中文高清版)》是一本全面介绍Python Web框架Django的入门书籍。这本书详细讲解了...

Global site tag (gtag.js) - Google Analytics