• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > Python的Django框架使用入门指引

Python的Django框架使用入门指引

作者:goldensun 字体:[增加 减小] 来源:互联网

goldensun 通过本文主要向大家介绍了python django框架,python安装django,python.django,python django教程,python web django等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

 前言

传统 Web 开发方式常常需要编写繁琐乏味的重复性代码,不仅页面表现与逻辑实现的代码混杂在一起,而且代码编写效率不高。对于开发者来说,选择一个功能强大并且操作简洁的开发框架来辅助完成繁杂的编码工作,将会对开发效率的提升起到很大帮助。幸运的是,这样的开发框架并不少见,需要做的仅是从中选出恰恰为开发者量身打造的那款Web框架。

自从基于 MVC 分层结构的 Web 设计理念普及以来,选择适合的开发框架无疑是项目成功的关键性因素。无论是 Struts、Spring 或是其他 Web 框架的出现,目的都是为帮助开发者把所有的编码工作打理的井井有条、赏心悦目。在动态语言领域,Python、Ruby、Groovy 等语言在 Web 开发中也逐渐发展壮大,掀起一浪接一浪的开发热潮。面对 Ruby on Rails 渐渐深入人心的宣传攻势和火热势头,更为成熟且不乏优秀程序员的Python 社区也纷纷推出欲与之抗衡的Web开发框架。在对 Python 旗下的开发框架经过一番取舍比较之后,笔者选择了 Python 框架 Django 作为 Web 开发框架的首选,究其缘由,就是看中了 Django 新颖简洁的开发模式和巨大的发展潜力。

在下面的章节里,将通过一个完整的 Django 框架 Web 开发示例,详细讲解开发过程中 MVC 各层次代码编写过程中所需的各种要素与资源,通过实例体验 Django 为 Web开发者带来的高效与便捷。

细说Django

Django 是应用于 Web 开发的高级动态语言框架,最初起源于美国芝加哥的 Python 用户组,具有新闻从业背景的 Adrian Holovaty 是 Django 框架的主要开发者。在 Adrian 的带领下,Django 小组致力于为 Web 开发者贡献一款高效完美的Python 开发框架,并且在 BSD 开放源代码协议许可下授权给开发者自由使用。

Django 拥有完善的模板机制、对象关系映射机制以及用于动态创建后台管理界面的功能,利用 Django,可以快速设计和开发具有 MVC 层次的 Web 应用。为了打消开发者选用 Django 框架时的疑虑,首先分析一下 Django 引人注目的特性。在实体映射方面,Django 的对象相关映射机制帮助开发者在 Python 类中灵活定义数据模型,并且Django 具有功能丰富的动态数据库访问 API,可以大幅度简化书写 SQL 语句的繁杂工作。同时 Django 支持包括 Postgresql,MySql,Sqlite,Oracle 在内的多种后台数据库。Django 的 URL 分发设计的十分简洁美观,不会在链接中产生一大串杂乱且难以理解的字符。使用 Django 可扩展的内置模板,可以将模型层、控制层与页面模板完全独立开来进行编码。Django 还具有自己的 Cache 系统,如果需要,也可以根据开发者的要求嵌套其他的 Cache 框架。


起程前的准备

即使是对 Python 语言还不太熟悉,Django 开发的起步过程对于新手来说也并不复杂,通过使用 Django 框架完成下面的 Web 应用开发,可以在过程的每个步骤之中体会到 Django 框架赋予开发者的敏捷与自由。

在开始之前,首先要配置好Python和Django的开发环境,下面的示例将在Windows操作系统下进行,与Linux/Unix操作系统环境下的开发过程相比,仅在环境变量配置等方面略有不同。目前Python的最新版本是2.5.1,在官方站点Python.org下载安装包后搭建好Python的编译运行环境,接下来还需要把Python的安装路径添加在系统环境变量path里面,以便在命令行下使用Python进行编译及运行。

Django目前的最新发行版本是0.96版,其压缩包可以在官方站点djangoproject.com下载。解压后进入Django目录,在命令行里执行python setup.py install,这样Django就会作为第三方模块被安装在Python的site-packages目录中,然后把Django中bin目录的路径添加到环境变量path里面,这样在命令行里就可以方便的使用Django提供的各种指令。


开始Django的旅程

在下面的步骤里,将会利用Django框架实现一个完整小巧的Web应用程序。应用实例将创建实现一个新闻公告牌,用户可以从后台添加新闻分类和条目,然后在前端页面中显示新闻的统计信息。在应用的实现过程中,将会逐步介绍Django的开发方式及其带来的快捷体验。

为帮助开发者实现不同的功能,Django为我们提供了众多的开发指令,大部分繁琐的操作都被Django集成在简洁的命令行提示符中实现。现在打开命令提示符,进入到想要创建应用的目录后键入django-admin.py startproject news命令,调用Django的控制台命令新建一个名为news的工程,与此同时Django还在新创建的news文件夹下生成以下四个分工不同的文件。

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

当新的工程建立好之后,假如迫不及待就想知道新建工程的模样,Django已经为你准备好一款轻量级的Web服务器以便在开发过程中随时测试使用。开发者只需在命令提示符下进入工程目录,键入命令manage.py runserver,就可以启动Web服务器来测试新建立的工程,如果启动没有错误,将可以看到下面这样的提示信息:“Development server is running at http://127.0.0.1:8000/” 表示当前工程已经可以通过本机的8000端口访问。通过浏览器打开上述地址,如图1所示的Django项目初始页面将会出现在读者面前。
图 1. Django项目初始页面

201541592057142.jpg (572×203)

在命令行里使用Ctrl+Break或Ctrl+C的组合键可以停止runserver命令启动的Web服务器。当然,Django自带的Web服务器一般只是在开发测试的过程中使用,当Django工程真正发布时,可以通过加载mod_python.so模块把Django应用部署在Apache上,以方便Web访问的管理和配置。


Django的模型定义

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

在传统的Web的开发中,很大的一部分工作量被消耗在数据库中创建需要的数据表和设置表字段上,而Django为此提供了轻量级的解决方案。借助Django内部的对象关系映射机制,可以用Python语言实现对数据库表中的实体进行操作,实体模型的描述需要在文件models.py中配置。

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

class List(models.Model): 
 title = models.CharField(maxlength=250, unique=True) 
 def __str__(self): 
  return self.title 
 class Meta: 
  ordering = ['title'] 
 class Admin: 
  pass

</div>

上面这段Python代码定义了存储新闻分类的List数据表,上述模型中的定义会被Django转换成与数据库直接交互的结构化查询语言来建立数据表,即创建一个名为List的表格,表格内的两个字段分别是Django自动生成的整型主键id和最大宽度为250个字符的VARCHAR类型字段title,并且在title字段上定义了唯一性约束,来保证新闻分类不会有完全相同的名称。

在List类文件里还定义了函数__str__(),作用是返回self字符串表示的title字段。而在类Meta中,设置了List表格按照title字母顺序的排序方式。在类Admin的设置中,允许Django针对当前的Models模型自动生成Django超级用户的后台管理入口,关键词pass设定Django将按照默认方式生成后台管理界面。这一部分在稍后的章节可以看到,由此也可以体会到Django带来的独特魅力。下面再来添加新闻条目Item对应的Models模型,代码如下面所示:
清单 2. 添加新闻条目Models模型

import datetime 
class Item(models.Model): 
 title = models.CharField(maxlength=250) 
 created_date = models.DateTimeField(default=datetime.datetime.now) 
 completed = models.BooleanField(default=False) 
 article_list = models.ForeignKey(List) 
 def __str__(self): 
  return self.title 
 class Meta: 
  ordering = ['-created_date', 'title'] 
 class Admin: 
  pass

</div>

Item数据表对应的Models代码稍微复杂一些,但并不晦涩。代码里首先引入datetime类型,用于定义表示文章创建日期的created_date字段,并且通过Python的标准函数datetime.datetime.now返回系统当前日期来设置字段的默认值。在记录排序的ordering设置中,符号“-”表示按照日期的倒序进行排列,如果文章创建日期相同,则再按照title的字母序正序排列。

到此为止,应用中模型部分需要定义的两个数据表都已经创建完毕,下一步的工作是让Django部署并在数据库中生成已经写好的Models模型。


Django模块的部署

在D

您可能想查找下面的文章:

  • Python之Web框架Django项目搭建全过程
  • Python之Web框架Django项目搭建全过程
  • python django事务transaction源码分析详解
  • python+django快速实现文件上传
  • Python+django实现简单的文件上传
  • Python+django实现简单的文件上传
  • 搭建Python的Django框架环境并建立和运行第一个App的教程
  • 搭建Python的Django框架环境并建立和运行第一个App的教程
  • Python的Django框架中消息通知的计数器实现教程
  • Python的Django框架中消息通知的计数器实现教程

相关文章

  • Python设计模式之抽象工厂模式
  • 深入理解python中的atexit模块
  • Python中MySQL数据迁移到MongoDB脚本的方法
  • 深入解析Python中的变量和赋值运算符
  • Python实现的数据结构与算法之队列详解
  • python版本的读写锁操作方法
  • Python selenium 三种等待方式解读
  • python读写json文件的简单实现
  • Python多维/嵌套字典数据无限遍历的实现
  • python 文件和路径操作函数小结

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • python结合selenium获取XX省交通违章数据的实现思路及代码
    • 使用Python内置的模块与函数进行不同进制的数的转换
    • Python+Wordpress制作小说站
    • 学习python之编写简单乘法口诀表实现代码
    • python基础教程之类class定义使用方法
    • Python 元组(Tuple)操作详解
    • Python编程判断这天是这一年第几天的方法示例
    • python每隔N秒运行指定函数的方法
    • 将Python的Django框架与认证系统整合的方法
    • python处理json数据中的中文

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有