美文网首页IT课程分享我爱编程python学习
史上最友好的 Django 入门教程

史上最友好的 Django 入门教程

作者: 蓝桥云课 | 来源:发表于2018-07-26 13:52 被阅读205次

    Django是使用Python开发的开源Web开发框架。使用Django,你能以最小的代价构建和维护高质量的Web应用。

    我们参考Django 官方文档,制作了一门新手更容易理解的Django 基础教程 ,帮助大家更好地学习Django框架,为快速开发网站打下基础。

    (本教程由JoyRiding发布在实验楼,完整教程、代码及在线练习地址:Django 基础教程 。更多项目请查看Python学习路径

    课程分为7大板块:

    • 一、Django简介
    • 二、搭建Django环境
    • 三、视图 View
    • 四、模型 Model
    • 五、模板 Template
    • 六、使用MTV模式实现数据库增删改
    • 七、总结

    接下来讲几个比较关键的内容。

    1、为什么使用Django?

    Django诞生于新闻网站的环境中,它所提供的特性非常适合开发内容类的网站(例如:博客,交流社区,图片分享站等等......),它的设计目的是使常见的Web开发任务变得快速而简单。

    Django是开源的,不是商业项目或者科研项目,它集中力量解决Web开发中所遇到的一系列问题。因此,Django每天都在现有的基础上进步,以适应不断更迭的开发需求。这样即节省了开发时间,也提高了后期维护的效率。

    2、Django建立网站的过程

    1)设计模型Model

    Django无需数据库就可以使用,通过对象关系映射器(Object-relational mapping),仅使用Python代码就可以描述数据结构。

    # myProject/myApp/models.py
    form django.db import models
    class book(models.Model):
        name = models.CharField(max_length=100)
        pub_date = models.DateField()
    
    

    models.py 文件主要用一个 Python 类来描述数据表。 称为 模型(model) 。 运用这个类,你可以通过简单的 Python 代码来创建、检索、更新、删除 数据库中的记录而无需写一条又一条的SQL语句。 在这里我们创建了一个book模型,并定义了name和pub_date属性。

    2)设计视图Views

    在模型被定义之后,我们便可以在视图中引用模型。通常,视图根据参数检索数据,加载一个模板,并使用检索到的数据呈现模板。

    # myProject/myApp/views.py
    from django.shortcuts import render
    from .models import Person
    
    def book_archive(request, year):
        book_list = Person.objects.filter(birth_year = year)
        context = {'year': year, 'book_list': book_list}
        return render(request, 'books/year_archive.html', context)
    
    

    views.py 文件包含了页面的业务逻辑。 book_archive()函数叫做视图。 这里还用到了year_archive.html模板。

    3)设计链接Urls

    优雅简洁的URL解析式是衡量高品质网站的重要标准。Django鼓励使用漂亮的URL设计。 使用这些优美的URL,只需要建立URL和Python回调函数简单的映射关系。

    # myProject/myApp/urls.py
    from django.urls import path
    from . import views
    
    urlpatterns = [
        path('books/<int:year>', views.year_archive),
    ]
    
    

    urls.py 指出了什么样的 URL 调用什么视图。 在这个例子中 books/xxxxx 将会调用 year_archive() 这个函数。也就是说,在进入这个链接时,会返回视图函数的结果。

    4)设计模板Templates

    Django拥有强大的模板功能,使用该模板能设计出强大的Web页面。

    # /template/year_archive.html
    {% block title %}Books for {{ year }}{% endblock %}
    
    {{% block content %}}
    <h1>Articles for {{years}}</h1>
    
    {% for book in book_list %}
        <p>{{ book.name }}</p>
        <p>Published {{ book.pub_date|date:"F j, Y" }}</P>
    {% endfor %}
    {% end block %}
    
    

    year_archive.html 是 html 模板。 使用带基本逻辑声明的模板语言,如{% for book in book_list %},它试图将函数返回的结果显示在网页上。

    Django的这种结构我们称之为MTV模式:M代表模型(Model),T代表模板(Template),V代表视图(View)。这三个分别代表了三种不同功能的Web应用,各司其职,又彼此合作。 大家一定听说过MVC模式(Mode-View-Controller),MTV模式本质上与MVC相同,都是让各组件保持低耦合的关系。

    3、Django实战 - 使用MTV模式实现数据库增删改

    通过简单的表单来提交数据。

    具体步骤查看Django 基础教程实验6 使用MTV模式实现数据库增删改

    4、Django的MTV设计模式

    1)MVC

    在说MTV模式之前,让我们来简单的说说著名的MVC模式。

    MVC,是模型(Model)-视图(View)-控制器(Controller)的缩写。其具体定义如下:

    M:模型(Model),数据存取层,负责业务对象和数据库对象。
    V:视图(View),与用户的交互,负责显示与怎样显示。
    C:控制器(Controller),接受用户动作,调用模型,输出相应视图。
    
    

    三者以一种插件似的,松耦合的方式连接在一起。

    image

    2)MTV

    Django的MTV设计模式是借鉴和遵循MVC的。

    MTV具体定义如下:

    M:模型(Model),负责业务对象和数据库的关系映射。
    T:模板(Template),负责如何把页面展示给用户。
    V:视图(View),负责业务逻辑,并在适当时候调用模型和模板。
    
    

    3)URL分发器

    URL分发器的作用是将页面请求分发给不同的视图(View)处理,视图再调用相应的模型(Model)和模板(Template)。

    Django Web框架

    一个误区是把MVC模式与MTV模式等价替换。其实这样是不对的。

    在MTV模式中,MVC中的View分成了视图View(展现哪些数据)和模板Template(如何展现)2个部分,而控制器(Controller)这个要素由框架自己来实现了,我们需要做的就是把URL对应到视图V就可以了,通过这样的URL配置,系统将一个请求发送到一个合适的视图。

    完整教程:Django 基础教程
    更多编程练手项目:精选项目课程

    课程咨询,欢迎添加班主任微信:

    更多精彩IT课程尽在实验楼官方网站,欢迎体验。(●ˇ∀ˇ●)

    相关文章

      网友评论

        本文标题:史上最友好的 Django 入门教程

        本文链接:https://www.haomeiwen.com/subject/yihbmftx.html