• Welcome to Django!


    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 models
    
    class Book(models.Model):
        name = models.CharField(max_length=50)
        pub_date = models.DateField()
    

    views.py (业务逻辑层)

    from django.shortcuts import render
    from models import Book
    
    def 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 views
    
    urlpatterns = patterns('',
        (r'^latest/$', views.latest_books),
    )
    

    latest_books.html (模板文件)

    <html><head><title>Books</title></head>
    <body>
    <h1>Books</h1>
    <ul>
    {% for book in book_list %}
    <li>{{ book.name }}</li>
    {% endfor %}
    </ul>
    </body></html>
    

    现在,我们不需要太专注语法细节,只需要注意这里实现的方式。 这里要重点提到的是 重点分离 (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中,你可以到https://docs.djangoproject.com/en/dev/releases/1.X (X请用相应的版本替换,eg:1.4、1.7)查看。

    一点提示

    本课程基于《The Django Book》改编,想查看更多的资料: 老版本django book: http://djangobook.py3k.cn/2.0/ 新版本django book(翻译中):http://djangobook-cn.readthedocs.org/en/latest/ 在学习过程中,想了解更多,必须得官方文档啊! https://www.djangoproject.com/

    有问题,要提问呀! 社区邮件列表,你值得拥有: https://groups.google.com/forum/#!forum/django-users

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

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

    上面那个链接,一看就是要穿越长城的, 如果能量不足,Django中国社区 :)

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

    Django1.4 中文文档(翻译过半)

    小结

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

  • 相关阅读:
    MyEclipse------文件字符输入,输出流读写信息
    MyEclipse------快速写入内容到指定目录下的文件(字节输出流)
    MyEclipse------快速读取特定目录下的文件的内容(字节输入流)
    MyEclipse------在特定目录创建文件和书写内容
    MyEclipse------遍历某个路径下的(所有或特定)文件和目录
    MyEclipse------File类的各种方法
    MyEclipse------如何在特定目录下创建文件夹
    MyEclipse------PreparedStatement使用方法
    使php支持mbstring库
    web页面性能测试
  • 原文地址:https://www.cnblogs.com/mrchige/p/6391749.html
Copyright © 2020-2023  润新知