django入门教程1--设计模型、URL和模板

完整教程https://www.daimapi.com/django/intro/overview/

初识 Django¶

Django 最初被设计用于具有快速开发需求的新闻类站点,目的是要实现简单快捷的网站开发。以下内容简要介绍了如何使用 Django 实现一个数据库驱动的 Web 应用。

为了让您充分理解 Django 的工作原理,这份文档为您详细描述了相关的技术细节,不过这并不是一份入门教程或者是参考文档(我们当然也为您准备了这些)。如果您想要马上开始一个项目,可以从 实例教程 开始入手,或者直接开始阅读详细的 参考文档 。

设计模型¶

Django 无需数据库就可以使用,它提供了 对象关系映射器 通过此技术,你可以使用 Python 代码来描述数据库结构。

你可以使用强大的 数据-模型语句 来描述你的数据模型,这解决了数年以来在数据库模式中的难题。以下是一个简明的例子:

from django.db import models

class Reporter(models.Model):

    full_name = models.CharField(max_length=70)

    def __str__(self):

        return self.full_name

class Article(models.Model):

    pub_date = models.DateField()

    headline = models.CharField(max_length=200)

    content = models.TextField()

    reporter = models.ForeignKey(Reporter, on_delete=models.CASCADE)

    def __str__(self):

        return self.headline

应用数据模型¶

然后,运行 Django 命令行工具来创建数据库表:

$ python manage.py migrate

这个migrate命令查找你所有可用的模型并将在数据库中创建那些不存在的表,还可提供了可选的丰富 schema 控制。

享用便捷的 API¶

接下来,你就可以使用一套便捷而丰富的Python API访问你的数据。这些 API 是即时创建的,而不用显式的生成代码:

# Import the models we created from our "news" app

>>> from news.models import Article, Reporter

# No reporters are in the system yet.

>>> Reporter.objects.all()

# Create a new Reporter.

>>> r = Reporter(full_name='John Smith')

# Save the object into the database. You have to call save() explicitly.

>>> r.save()

# Now it has an ID.

>>> r.id

1

# Now the new reporter is in the database.

>>> Reporter.objects.all()

]>

# Fields are represented as attributes on the Python object.

>>> r.full_name

'John Smith'

# Django provides a rich database lookup API.

>>> Reporter.objects.get(id=1)

>>> Reporter.objects.get(full_name__startswith='John')

>>> Reporter.objects.get(full_name__contains='mith')

>>> Reporter.objects.get(id=2)

Traceback (most recent call last):

    ...

DoesNotExist: Reporter matching query does not exist.

# Create an article.

>>> from datetime import date

>>> a = Article(pub_date=date.today(), headline='Django is cool',

...    content='Yeah.', reporter=r)

>>> a.save()

# Now the article is in the database.

>>> Article.objects.all()

]>

# Article objects get API access to related Reporter objects.

>>> r = a.reporter

>>> r.full_name

'John Smith'

# And vice versa: Reporter objects get API access to Article objects.

>>> r.article_set.all()

]>

# The API follows relationships as far as you need, performing efficient

# JOINs for you behind the scenes.

# This finds all articles by a reporter whose name starts with "John".

>>> Article.objects.filter(reporter__full_name__startswith='John')

]>

# Change an object by altering its attributes and calling save().

>>> r.full_name = 'Billy Goat'

>>> r.save()

# Delete an object with delete().

>>> r.delete()


完整教程https://www.daimapi.com/django/intro/overview/

你可能感兴趣的:(django入门教程1--设计模型、URL和模板)