python第六十六天

python第六十六天,第1张

概述---恢复内容开始--- 1.在新版本中,添加app是直接在settings设置中,将INSTALLED_APPS里添加app名字, 但是他的完整写法是   ‘app01.apps.App01Config‘  因为新版本做了优化,所以直接写app名字也支持     2.form标签传输文件 form表单默认的编码格式是urlencoded不支持发文件(只能把文件名发过去) 它所对应数据格式 use

---恢复内容开始---

1.在新版本中,添加app是直接在settings设置中,将INSTALLED_APPS里添加app名字,

但是他的完整写法是   ‘app01.apps.App01Config‘  因为新版本做了优化,所以直接写app名字也支持

 

 

2.form标签传输文件

form表单默认的编码格式是urlencoded不支持发文件(只能把文件名发过去)
它所对应数据格式 username=jason&password=123

1.指定form提交的编码格式。 在form标签内添加  enctype="multipart/form-data" 才能实现使用form标签传输文件的 *** 作

2.在input标签中将type设为 file 会出现选择文件栏

使用post请求提交给后台后,后台使用request.fileS.get()来获取文件,会获取文件对象,对象可以使用 . name 方法来获取文件名

 

3. AJAX提交文件

在bootstrap 中的boot jquery中导入jquery。放置在<head>中

1. input标签type设为file 。会出现选择文件栏

2.设置一个button按钮

2. 使用AJAX设置点击事件,然后使用FormData()生成一个内置对象 

此对象既可以传普通的数据(键值对的数据)也可以传输文件

 

普通数据:

使用变量forData.append(‘name‘,‘owen‘); 添加普通数据

传文件:

1.先获取文件对象  $(‘#d2‘)[0].files[0],  先获取标签对象,取索引转成原生Js对象,,再使用内置方法files获得文件对象

2.再使用formData.append(‘myfile‘,文件对象) 键值对的方式添加到formData中,

再将formData通过AJAX发送给后台,后台使用request.fileS.get()获取文件,使用request.POST.get()来获取普通数据

 

forms组件:

关于django中测试脚本书写

新建一个py文件,将manage.py中的以下代码复制到py文件中

 

import os
import sys

if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODulE","djtest.settings")

      再添加如下代码

    imput django

    django.setup()

    再导入 app中的modles

    from app01 imput modelsz

还有一种方法是再pycharm解释器下方有一个python Console,该环境下帮你做好了以上的 *** 作

 

 

 

forms组件中所有字段默认都是必填的, 参数少传会给必须有 该位置必须要传参数的提示

在数据都满足form组件校验规则下,参数多传,或者传入没有的字段会过滤掉不接收

 

补充:

 

render 中的  locals(),会将所在的名称空间所有的名字都传递给模板页面

forms组件渲染标签:

  forms组件只能帮你渲染 获取用户输入(输入框,选择框,下拉框。。)的标签

  forms组件取消前端校验功能 在form标签中添加 novalIData

 

forms组件后台校验数据

  直接使用

form_obj = MyForm() # 实例化字段的类

if request.method == ‘POST‘: # 判断他是否是post请求

form_obj = MyForm(request.POST) # 直接将类传入request.POST字典,因为request.post本身就是一个字典,而forms组件所需要的参数就是字典。所以直接将前台传过来的数据传进去判断。得到的结果与is_valID()一样,得到的是bool值,直接进行判断

 

form组件当前端输入的信息不合法的时候,页面上的数据保留不会刷新,这样方便用户修改

 

 

 

 

 

 

forms组件的常用参数:

username= forms.CharFIEld(max_length=6,label=‘用户名‘,error_messages={‘max_length‘ : ‘用户名最长6位置’,

                                    ‘required‘ : ‘用户名不能为空‘ })

1. max_length     : 设置最大长度

2. label=‘用户名’       :自定义字段名,因为默认的是创建的字段名,是英文,可以自定义为中文

3. initial=‘请输入用户名‘ : 设置input框中的默认值

4. # 普通字段错误信息设置  error_messages={ ‘max_length’ : ‘用户名最大只能是6位,‘required’ : ‘用户名不能为空’ }    :错误信息  参数是一个字典. key必须写对。value可以随便设置

5. # 邮箱字段错误信息设置  error_messages={‘invalID’ : ‘邮箱格式不正确‘,‘required‘ :  ‘邮箱不能为空‘}           : 错误信息   

6. Widget=Widgets.Passwordinput( attrs={‘class’ : ‘form-control‘})  : 设置密码为密文

 

forms字段校验的两种方式

1. RegexValIDator验证器

2.钩子函数

钩子函数是写在字段类下面的函数,用来校验客户端传过来的信息

1.局部钩子。针对字段名来做校验的函数  (函数命名开头都是clean)

比如 def clean_username(self):  加判断

    username = clenaed_data.get(‘username‘)

总结

以上是内存溢出为你收集整理的python第六十六天全部内容,希望文章能够帮你解决python第六十六天所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1195705.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存