django 1.8.2 阅读笔记

2016.5.11
??:
重定向到视图函数可以直接用:return index(request)
??
一个表单必须指定两样东西:

where:响应用户输入的URL
how:HTTP 方法

Widget 是Django 对HTML 输入元素的表示。不要将Widget 与表单字段搞混淆。表单字段负责验证输入并直接在模板中使用。Widget 负责渲染网页上HTML 表单的输入元素和提取提交的原始数据。但是,Widget 需要赋值给表单字段。

返回True
将表单的数据放到cleaned_data 属性中。
如果表单的提交使用POST 请求,那么视图将再次创建一个表单实例并使用请求中的数据填充它:form = NameForm(request.POST)。这叫做”绑定数据至表单“
所有的表单类都作为django.forms.Form 的子类创建,包括你在Django 管理站点中遇到的ModelForm。
强烈建议你使用fields 属性显式设置所有将要在表单中编辑的字段。如果不这样做,当表单不小心允许用户设置某些特定的字段,特别是有的字段添加到模型中的时候,将很容易导致安全问题。这些问题可能在网页上根本看不出来,它与表单的渲染方式有关。
另外,Django 还将使用以下规则:如果设置模型字段的editable=False,那么使用ModelForm 从该模型创建的任何表单都不会包含该字段。
ModelForm就是可以自动生产相应字段的Form.自动生成哪些字段取决于Meta 类的fields属性和在该ModelForm中显示声明的字段。ModelForm 基本上只 生成表单中没有的字段,换句话讲就是没有显式定义的字段。

显式定义的字段会保持原样,所以Meta 属性中任何自定义的属性例如 widgets、labels、help_texts或error_messages 都将忽略;它们只适用于自动生成的字段。

ModelForm类会自动产生与Model相对于的表单,当然你也可以自己在ModelForm类中DIY相应的表单字段,这些作为属性存在。

每个模型表单还具有一个save() 方法。这个方法根据表单绑定的数据创建并保存数据库对象。
save() 接受一个可选的commit 关键字参数,其值为True 或False。如果save() 时commit=False,那么它将返回一个还没有保存到数据库的对象。这种情况下,你需要调用返回的模型实例的save()。 如果你想在保存之前自定义一些处理,或者你想使用特定的模型保存选项,可以这样使用。commit 默认为True。
注意模型有一个save()方法,模型表单也有一个save()方法,两者有区别也有联系。

处理这个表单的视图会在request中接收到上传文件的数据。FILES是个字典,它包含每个FileField的键 。注意request.FILES 只有在请求方法为POST,并且发送请求的拥有enctype=”multipart/form-data” 属性时,才会包含数据。否则request.FILES 为空。

request.POST is a dictionary-like object that lets you access submitted data by key name. In this case

认证一个给定用户名和密码,请使用authenticate()。它以关键字参数形式接收凭证,对于默认的配置它是username和password,如果密码对于给定的用户名有效它将返回一个User对象。如果密码无效,authenticate()返回None。

migrate查看INSTALLED_APPS设置并根据mysite/settings.py文件中的数据库设置创建任何必要的数据库表,数据库的迁移还会跟踪应用的变化;

python manage.py runserver 一个用纯Python写的轻量级Web服务器。 我们在Django中内置了它,这样你就可以在不配置用于生产环境的服务器 —— 例如Apache —— 的情况下快速开发出产品,直到你准备好上生产环境。

你编写的每个Django应用都是遵循特定约定且包含一个Python包。 Django自带一个工具,它可以自动生成应用的基本目录结构,这样你就能专心于书写代码而不是创建目录。

sqlmigrate命令接收迁移文件的名字并返回它们的SQL语句:

$ python manage.py sqlmigrate polls 0001

sqlmigrate命令并不会在你的数据库上真正运行迁移文件 —— 它只是把Django 认为需要的SQL打印在屏幕上以让你能够看到。

migrate命令会找出所有还没有被应用的迁移文件,并且在你的数据库上运行它们 。

请记住实现模型变更的三个步骤:

  • 修改你的模型(在models.py文件中)。
  • 运行python manage.py makemigrations ,为这些修改创建迁移文件
  • 运行python manage.py migrate ,将这些改变更新到数据库中。

save() 方法没有返回值。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值