Django 文档自翻自用中文版(2.1-2.1.3)
2016-04-29 01:56
417 查看
第一章的内容没什么特别重要不做翻译,从2.1开始不定时翻译,翻译内容也不定,因为自己一边学一边翻译.
原文档请参照Django1.9.1 Documentation
2.1 Django 的大致浏览
因为django在一个快节奏的环境下开发,它用来使一般的web开发变得快速而简单.这是一个关于如何用django创建一个基于数据库的web app的概述.
2.1.1 设计你的模型
尽管你可以在没有数据库的情况下使用django,在你的python代码里描述数据库框架时会带上其对象关系映射. 数据模型语法(data-model synax)提供了丰富的方式来展示你的模型,迄今为止,它已经解决了许多年的数据库模式问题.这里有一个简单的例子: mysite/news/models.py
from django.db import models class Reporter(models.Model): full_name = models.CharField(max_length=70) def __str__(self): # __unicode__ on Python 2 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): # __unicode__ on Python 2 return self.headline
2.1.2 安装
然后, 运行django命令行来自动生成数据库表: $ python manage.py migrate migrate命令查找你所有可查看的模型,然后对于数据库中不存在的表单自动创建,同样也作为可选的,提供了更丰富的语法控制
2.1.3 享受自由的API
通过上面的命令,从你的数据中可以获得一个自由的丰富的python api, api是在命令运行中生成的,不需要专门代码生成:
# 导入 news app中创建的模型 >>> from news.models import Reporter, Article # 系统中还没有reporters. >>> Reporter.objects.all() [] # Create a new Reporter. >>> r = Reporter(full_name='John Smith') # 将对象保存在数据库里,需要调用save()方法 >>> r.save() # 现在生成了一个id. >>> r.id 1 # 现在一个新的reporter存在数据库里. >>> Reporter.objects.all() [] # 在python对象中,对象作为属性展示出来 >>> r.full_name 'John Smith' # Django提供一个丰富的数据库来查寻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. # 创建一个article. >>> from datetime import date >>> a = Article(pub_date=date.today(), headline='Django is cool', ... content='Yeah.', reporter=r) >>> a.save() # 现在数据库里有了一个article >>> Article.objects.all() [] # Article对象获得了API权限来关联一个reporter对象 >>> r = a.reporter >>> r.full_name 'John Smith' # And vice versa: Reporter 对象获得了API权限来关联一个Article对象. >>> r.article_set.all() [] # API遵循你需要的关系,并且能够高效执行 # JOINs for you behind the scenes.(在后台添加关联的意思?) # 这条命另查找'John'开头的reporter的所有articles. >>>Article.objects.filter(reporter__full_name__startswith='John') [] # 改变一个对象通过改变其属性并且调用save方法 >>> r.full_name = 'Billy Goat' >>> r.save() # delete()方法删除一个对象 >>> r.delete()
原文档请参照Django1.9.1 Documentation
相关文章推荐
- OC中类目(Catagory)和扩展(Extension)的使用
- 给分类(Category)添加属性 /runtime
- hdu 5672 String
- Django-Restful框架
- hdu 5671 Matrix
- Tango学习笔记(1)
- 《Algorithms算法》笔记:优先队列(2)——二叉堆
- 《Algorithms算法》笔记:优先队列(1)——API和初等实现
- windows训练google word2vec
- golang注记
- 创建二维码工具类带logo
- Go之FAQ(一)
- go类型断言
- Win8系统开机进入LOGO界面后就自动重启的三种解决方法
- vim goLang
- django xadmin 插件(3) 列表视图新增自定义按钮
- good
- 树莓派django的安装配置
- Go语言实现工时计算
- Google 如何修复 TrustManager 实施方式不安全的应用