使用 django-bootstrap3 库

1. 配置

  • 下载

    pip install django-bootstrap3
    
  • settings配置

    在install_apps中加上 'bootstrap3'
    

2. 使用(在html文件中使用),表单

  1. 写视图

    • 写一个表单:
    from django import forms
    from uauth.models import UserInfoclass UserInfoForm(forms.ModelForm):class Meta:model = UserInfofields = ("username", "birthday", "signature", "avatar")
    • 再写一个视图函数
    from django.forms import model_to_dict
    from django.contrib import messages
    from uauth.forms import UserInfoForm
    from uauth.model import UserInfo@login_required(login_url="/uauth/;ogin/")
    def mod_userinfo(request):user_info = request.user.userinfouser_info_dict = model_to_dict(user_info)if request.method == "GET":form = UserInfoForm(data=user_info_dict)return render(request, "uauth/mod_userinfo.html", {"form": form})if request.method == "POST":# 保存图片pic = request.FILES["avatar"]user_info.avatar = picuser_info.save()# 保存数据form = UserInfoForm(data=request.POST, instance=user_info)if form.is_valid():form.save()return redirect(to="/uauth/my-info-page")else:messages.add_message(request, messages.ERROR, form.errors.as_text())return render(request, "uauth/mod_userinfo", {"form": form})
  2. 写模版

    • 导入(文件开头位置):

      {% load bootstrap3 %}
      
    • 使用bootstrap_messages,在文件中的适当位置写上就会显示messages的内容

      {% bootstrap_messages %}
      
    • 使用默认表单 bootstrap_form

      1. 最简单的方式:label和field显示的是上下格式

        {% bootstrap_form form %}
        
      2. 显示成水平方式:

        {% bootstrap_form form layout="horizontal" %}
        
        • 调节label的class:
          horizontal_label_class=”xxx” # 只对horizontal模式有效
          或 label_class=”xxx” # 都有效
        • 调节field的class:
          horizontal_field_class=”yyy” # 只对horizontal模式有效
          field_class=”yyy” # 都有效
        • 调节每个input+label外面的div的class,默认是form-group
          form_group_class=”xxx”
        • 上面是几种常用的属性,还有很多可以看官方文档django-bootstrap3
      3. 省去label:

        {% bootstrap_form form layout="inline" %}
        
  3. 优点

    • 使用django_bootstrap3的form的优点之一就是,他可以自动的生成错误提示,非常方便
  4. 我遇到的问题

    • 水平排列问题

      
      # 我要做一个修改用户信息的页面的时候用到了bootstrap_form,但是我想要他水平horizontal排列# 使用layout=horizontal之后发现各个input之间紧挨着,没有一定的空隙# 通过查官方文档知道要把form的class改成form-horizontal,但是bootstrap_form中没有参数去修改form的class的# 经过一番比较与排查,发现# 让form_group_class="form-group form-horizontal" horizontal_label_class="col-sm-3" horizontal_field_class="col-sm-7 form-group" 也能达到类似的效果# 经过修改后的bootstrap_form是:{% bootstrap_form form layout="horizontal" form_group_class="form-group form-horizontal" horizontal_label_class="col-sm-3 text-right" horizontal_field_class="form-group col-sm-7" %}
    • 保存信息问题

      最早我的form=UserInfoForm(request.POST)直接is_valid()通过后save()是有问题的,因为这里面的字段并不是全部的UserInfo字段,就会把其他字段的内容变成null,就报错,这是我们需要把对象传进来
      form = UserInfoForm(data=request.POST, instance=user_info)
      这是再save()的时候就是更新,而不是把哪些字段为空了。
    • 上传图片问题

      我上面的avatar是一个图片字段,是用户头像,上传的时候,form取的是request.POST里的数据,是无法取到file文件的,所以我又写了几步来保存图片,当然也可以在里面对图片处理(PIL)和筛选.pic = request.FILES["avatar"]
      user_info.avatar = pic
      user_info.save()

使用 django-bootstrap3 库相关推荐

  1. Diango博客--16.稳定易用的 Django 分页库,完善分页功能(二)

    文章目录 0.思路引导 1.分页效果概述 2.分页思路 3.Django 第三方拓展:django-pure-pagination 4.自定义模板 0.思路引导 1)在前面我们通过 Django Pa ...

  2. 在SAE(新浪云平台)上使用 python django库编写网站

    2015年4月18日02:16:23 网站开发前的步骤 作者:赵昊 0.svn小乌龟版本控制器的使用,参考http://sae.sina.com.cn/doc/tutorial/code-deploy ...

  3. Django +python+bootstrap 开发web,app,接口测试平台(持续更新)

    开发测试平台的初衷:希望web,app的UI自动化和接口的自动化能够一起执行,去掉jenkins构建,代码重构,繁多等问题. 本平台是1.0版本,后续还将完善更多的功能(考虑是作成一个测试的客户端还是 ...

  4. Django源码分析2:本地运行runserver分析

    django源码分析 本文环境python3.5.2,django1.10.x系列1.根据上一篇文章分析了,django-admin startproject与startapp的分析流程后,根据dja ...

  5. django render_2020年最新Django经典面试问题与答案汇总(下)大江狗整理

    终于我们来到Django经典面试问题与答案系列的终章了,在本章我们将分享最后10个常用有用的知识点,也是面试时常问的经典问题.如果你还没有读过本系列前两篇文章的,可以点击如下链接阅读. 2020年最新 ...

  6. Django开发社交类网站必备的10个第三方应用

    本文首发于我的博客 追梦人物的博客,欢迎关注. Django 的好处就是大而全,不仅内置了 ORM.表单.模板引擎.用户系统等,而且第三方应用的生态也是十分完善,开发中大部分常见的功能都能找到对应的第 ...

  7. django 部署_狂野的Django:部署生存的技巧

    django 部署 by Ali Alavi 通过Ali Alavi 狂野的Django:部署生存的技巧 (Django in the wild: tips for deployment surviv ...

  8. Django 入门篇一

    寒假时间想再考研之前再最后锻炼一下项目的水平,想用Django来开发个人博客,放弃了之前考虑的Java开发,主要是用Java开发一个轻量级的博客大材小用.最后决定用flask或者Django来完成这个 ...

  9. 学习django就看这本书了!django book 2.0中文版

    所属网站分类: 资源下载 > python电子书 作者:熊猫烧香 链接:http://www.pythonheidong.com/blog/article/29/ 来源:python黑洞网 dj ...

  10. django 1.8 官方文档翻译:9-2 本地特色附加功能

    "本地特色"附加功能 由于历史因素,Django自带了django.contrib.localflavor – 各种各样的代码片段,有助于在特定的国家地区或文化中使用.为了便于维护 ...

最新文章

  1. 【剑指offer-Java版】47不用加减乘除做加法
  2. python运行非常慢的解决-为什么python运行的慢
  3. Pytorch中的optimizer.zero_grad和loss和net.backward和optimizer.step的理解
  4. python识别银行卡数字_基于opencv -python--银行卡识别
  5. Java web登录拦截器_SpringMVC拦截器(实现登录验证拦截器)
  6. matlab里box office,免费试用Econometrics Toolbox
  7. laragon环境更新安装新的php版本操作方法
  8. 【Kafka】《Kafka权威指南》入门
  9. 《计算机网络》学习笔记 ·005【传输层】
  10. 【ADO.NET】7、SQL高级封装
  11. 手机资料误删恢复有什么办法
  12. springboot+Layui后台管理系统
  13. 保险产业拥抱“大数据时代” 或带来颠覆性变革
  14. pbr发光 unity_【学习笔记】Unity PBR的实现
  15. 教你玩转Word教程-刘青-专题视频课程
  16. 汉字转拼音 java_Java汉字转拼音工具类完整代码实例
  17. logo设计的忌讳与要点有哪些
  18. 王道OS-磁盘存储器管理
  19. 作为程序员的我,常用的工具软件有这些
  20. 这可能是你见过最硬核的微服务入门指南!

热门文章

  1. “5G 将是一个彻底的失败通信技术” | 畅言
  2. 清心寡欲之程序员黑白色屏幕护眼
  3. 2019高教社杯全国大学生数学建模竞赛题目 问题C 机场的出租车问题
  4. TFTP协议报文过防火墙不通
  5. cannot be loaded because running scripts is disabled on this system(json-server)
  6. squid传统代理(附压缩包文件)
  7. 一文了解|阿里、鹅厂、字节...互联网大厂真正核心部门是?
  8. 数据分析-各种图表的使用场景(网易云课堂笔记)
  9. yml避坑,yml配置使用map,如果key中包含某些符号会消失不见
  10. 陪伴程序员的一条龙、一骑士 36 岁了