Python之web开发——Django入门

Django背景

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

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

系统支持

Mac windows Linux
推荐使用Linux操作系统进行开发,Windows中有部分库无法支持

Ubuntu常用命令

点击这里进入常用命令页面

设计模型

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

#models.py 
from django.db import models
class book(models.Model):
    name = models.CharField(max_length=100)
    pub_date = models.DateField()
    #在这里创建了一个book模型,并定义了name和pub_date属性

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

设计视图

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

# 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模板。

设计链接

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

# 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()这个函数。在进入这个链接时,会返回视图函数的结果。

设计模板

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应用,各司其职,又彼此合作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值