博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Welcome to Django!
阅读量:6949 次
发布时间:2019-06-27

本文共 2587 字,大约阅读时间需要 8 分钟。

Welcome to Django!

实验简介

Django是一个可以使Web开发工作更加高效愉快的Web开发框架。Django可以让你用最小的代价构建和维护更高质量的Web应用程序。

从好的方面来看,Web开发是一项有趣和充满创造性的事;但是另一方面,Web开发又可能是一项繁琐令人生厌的工作。通过减少重复的部分,Django能让你专注于Web程序的核心,从而让开发更加有趣。为了达到这个目标,Django提供了通用Web开发模式的高度抽象,一些常见任务的快捷方式,还为“如何解决问题”提供了清晰明了的约定。同时,Django尝试留下一些方法,来让你根据自己的需要在framework之外来开发。

关于发音

Django, 应该读作jan go, D是不发音的~~~发音的~~~音的~~~的~~~

MVC设计模式

让我们来研究一个简单的例子,通过这个实例,你可以看出用Web框架方式与之前的做法有什么不同。首先,我们将内容分隔到3个Python的文件中models.py、views.py、urls.py 和一个模板文件( latest_books.html )。

models.py (数据库表)

from django.db import modelsclass Book(models.Model): name = models.CharField(max_length=50) pub_date = models.DateField()

views.py (业务逻辑层)

from django.shortcuts import renderfrom models import Bookdef latest_books(request): book_list = Book.objects.order_by('-pub_date')[:10] return render(request, 'latest_books.html', { 'book_list': book_list})

urls.py (URL配置)

from django.conf.urls.defaults import *import viewsurlpatterns = patterns('',    (r'^latest/$', views.latest_books), )

latest_books.html (模板文件)

Books  

Books

    {% for book in book_list %}
  • { { book.name }}
  • {% endfor %}

现在,我们不需要太专注语法细节,只需要注意这里实现的方式。 这里要重点提到的是 重点分离 (separation of concerns):

models.py 中用一个Python类来描述一个数据库中的表,被称作 模型 (model)。通过这个类,你可以通过简单的Python代码来对数据库中的记录进行增删改查(创建,检索,更新,删除),而无需你去写一条一条的SQL语句。

views.py 中包含了页面的业务逻辑。 latest_books() 方法叫做 视图 (view)。

urls.py 指定视图和URL的关系,即什么样的URL调用哪个的视图。在这个例子中, /lastest/ URL 会调用 latest_books() 这个方法。换句话说如果你的域名是example.com,任何人访问http://example.com/latest/ 就会调用 latest_books() 。

latest_books.html 是HTML模板,它定义了这个页面的设计,模板中使用了带基本逻辑语句的模板语言,比如 {% for book in book_list %}

这部分代码松散地遵循了模型-视图-控制器(MVC)的设计模式。简单来说,MVC是一种软件开发的方法,它把定义和访问 数据的代码(模型 model)和控制请求逻辑的代码(控制器 controller)和用户接口(视图 view)分割开来。我们会在以后更加深入地讨论MVC。

这个方法最重要的优点在于它的各个部分都是 松耦合 (loosely coupled)的。这样用Django开发的Web程序中每个部分都有它自己单一的目的,并且可以单独地被修改而不会影响到其他部分。比方说,一个程序员可以在不影响底层实现的情况下修改URL;设计师可以不需要接触Python的代码就修改页面的HTML;数据库管理员在重命名数据表之后只需要修改一个地方就可以了,而不需要在一大堆文件中查找替换。

Django的版本

本课程基于Django 1.4

Django的开发尽量保证版本向后兼容,但是仍然可能会添加一些不向后兼容的改变。每个版本的更新通常都会 记录在relase note中,你可以到 (X请用相应的版本替换,eg:1.4、1.7)查看。

一点提示

本课程基于《The Django Book》改编,想查看更多的资料: 老版本django book:  新版本django book(翻译中): 在学习过程中,想了解更多,必须得官方文档啊! 

有问题,要提问呀! 社区邮件列表,你值得拥有: 

Django的一个最大的优势就是她有一群乐于助人的人活跃在Django社区里。 你在Django中遇到的任何问题,从安装,程序设计,数据库设计到部署,都可以在上面寻求帮助。

django-users邮件列表上面有上万的Django用户,活跃着讨论问题。可以到  免费注册。 如果碰到棘手的问题,想要得到及时的回复,可以到Django IRC channel寻求帮助。加入方法是在Freenode IRC network上加入#django。

上面那个链接,一看就是要穿越长城的, 如果能量不足,

《The Django Book》是在Django1.0的基础来的,所以有很多的新特性并没有加入,特别是在模板和模型里边,所以本课程中的东西只是入门而已,请一定去翻看对应的django版本的官方文档,尽管他是英文的。

小结

Django是用Python实现的一个Web开发框架,它遵从MVC模式,能快速地开发Web应用。

转载地址:http://chhnl.baihongyu.com/

你可能感兴趣的文章
日期操作积累
查看>>
Linux 僵尸进程的筛选和查杀
查看>>
WP7基础学习---第十五讲
查看>>
mysql linux app
查看>>
DotNetCore学习-3.管道中间件
查看>>
Python基础11_函数名运用,闭包,迭代器
查看>>
java集合框架
查看>>
python之configparse模块
查看>>
用户数据文件损坏
查看>>
linux使用FIO测试磁盘的iops
查看>>
As3多线程
查看>>
CentOS6.2编译安装MySQL5.5.25
查看>>
Nyoj 星际之门(一)(Cayley定理)
查看>>
词法分析程序
查看>>
Mybatis 动态sql
查看>>
前端基础之css
查看>>
HTML标签权重分值排列
查看>>
sqlserver 2008手工修改表结构,表不能保存的问题与解决方法
查看>>
网址收藏
查看>>
Gtest:Using visual studio 2017 cross platform feature to compile code remotely
查看>>