Django的一些隐性经验
隐性经验
- 前后信息的沟通
url中的参数 get获取 这个参数可以写在URL当中(可以写多个,写在这里的get函数需要有相应的参数去获取)。,也可以在模版中添加(通过?若是直接写则表示在当前的URL中添加,也可以在前面写动态的URL后边添加参数信息)
post获取 post获取的主要是form表单中的信息,因此有个小技巧,form表单中可以有一些隐身的信息,是get渲染模版的时候传过来的
# 以找回密码为例
url('^reset/(?P<active_code>.*)/$', ResetView.as_view(), name='reset_pwd'),
class ResetView(View):
def get(self,request,active_code):
all_recodes = EmailVerifyRecord.objects.filter(code=active_code)
if all_recodes:
for record in all_recodes:
email = record.email
#向模版中传入邮箱信息
return render(request,'password_reset.html',{
'email':email
})
else:
return render(request, 'active_fail.html')
return render(request,'login.html')
# html
<input type="hidden" value="{{ email }}" name="email">
# 因为form表单的action若是指向重置的链接,需要有一个参数,所以从新写了一个找回密码的类
class ModifyPwdView(View):
def post(self, request):
modify_form = ModifyPwdForm(request.POST)
if modify_form.is_valid():
pwd1 = request.POST.get('password1', '')
pwd2 = request.POST.get('password2', '')
# 得到隐身的信息
email = request.POST.get('email', '')
if pwd1 != pwd2:
return render(request, 'password_reset.html',{
'email':email,
'msg':'密码不一致'
})
user = UserProfile.objects.get(email=email)
user.password = make_password((pwd2))
user.save()
return render(request, 'login.html')
else:
email = request.POST.get('email', '')
return render(request, 'password_reset.html', {
'email': email,
'modify_form':modify_form
})
- 模版中无法判断是否为选中状态,可以在后端中添加一个字段,传到前端做区分
# view
current_page = 'home'
# html
class="{% if current_page == 'home' %}active2{% endif %}"
模板中需要一些数据库的逻辑处理,可以通过在model中直接添加函数,也可以通过自定义标签和过滤器来实现.
在含有基层和高层的app的时候要灵活的使用它们之间的联系,要那个类中含有这个外键字段,那么就可以通过这个字段的set找到那个类的信息.
def get_learn_users(self):
return self.usercourse_set.all()[:5]
- 模板中是for循环,但是若后台传递一个空的字符串会报错的.如果是空,应该传递一个空列表才行.
Django的一些隐性经验的更多相关文章
- 实战分享丨MySQL 与Django版本匹配相关经验
摘要:关于MySQL 与Django版本匹配相关知识的经验分享. run: (env) E:\PythonPro\PyDjangoProDemo011\xuanyuaniotpro>python ...
- Django一些开发经验
总结一些 Django 开发的小经验.先说一些最最基础的吧. 使用 virtualenv 隔离开发环境 使用 pip 管理项目依赖,主要就是一个小技巧,使用 pip freeze > requi ...
- Python超级程序员使用的开发工具
我以个人的身份采访了几个顶尖的Python程序员,问了他们以下5个简单的问题: 当前你的主要开发任务是什么? 你在项目中使用的电脑是怎样的? 你使用什么IDE开发? 你将来的计划是什么? 有什么给Py ...
- Django开发个人博客入门学习经验贴
[写在前面] 入门学习搭建个人博客系统首先还是参考大佬们的经验,记得刚入手Django的时候,一篇博客大佬说过一句话,做技术的不要一开始就扎头于细节中,先把握整体框架,了解这个对象之后再去了解细节,进 ...
- Django+Vue跨域配置与经验
一.原理 同源?同源策略? 同源的定义是:两个页面的协议.端口和域名都相同 同源的例子: 不同源的例子: 同源策略SOP(Same origin policy)是一种浏览器约定,它是浏览器最核心也最基 ...
- 【uWSGI】实战之Django配置经验
uWSGI 是应用服务器,实现了uwsgi, wsgi等协议,可以运行wsgi 应用 uwsgi 是协议名 Django配置 下面是自己经常用的一个配置模板,基于1.9以上的版本使用的, 主要基于dj ...
- Django学习经验
1.在1.9——>到2.0的版本中, Django.core.urlresolvers import reverse ——>django.urls 2.当无法访问时把原来的数据清空: 首先 ...
- 【Django】有关多用户管理的一点小经验分享
前言 最近,笔者因为需要开发一个系统作为毕设的展示,因此就产生了有关多用户管理的问题.在这里我把自己的需求重新阐明一下:能够通过Django自带的用户管理框架,实现多用户的管理,例如登录.登出.ses ...
- Django学习路19_is_delete属性,重写类方法,显性隐性属性
如果在 创建数据表时,使用了 objects = models.Model() 使隐形属性变为了 显性属性 则 必须要自己定义一个 继承了 models.Model 类的类,实现 管理功能 如果一个属 ...
随机推荐
- Axiso解决跨域访问(...XMLHttpRequest cannot load http://xxx.xxx No 'Access-Control-Allow-Origin'...)
直接访问如下:this.$axios.get("http://localhost:8089/yc/demo").then(res=>{ console.log(res) ...
- 使用fdisk进行分区
fdisk进行分区 1.首先使用fdisk -l 发现待分区磁盘/dev/vdb 大小为1TB 2.fdisk /dev/vdb 对该磁盘进行分区,输入m并回车 3.输入n并回车,n是“new”新建 ...
- base64图片
常见的html中或css中图片的src赋值为data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAYAAABIdFAMAAAAGXRFWHR ...
- ORM对象关系映射
ORM 总结: ORM:对象关系映射 作用: 1.将定义数据库模型类--> 数据库表 2.将定义数据库模型类中的属性--->数据库表字段 3.将模型对象的操作(add,delete,com ...
- spark java.lang.OutOfMemoryError: unable to create new native thread
最近迁移集群,在hadoop-2.8.4 的yarn上跑 spark 程序 报了以下错误 java.lang.OutOfMemoryError: unable to create new native ...
- 转 cxgrid属性说明
TCXGRID控件:属性:ActiveLevel: 当前层BorderStyle: 窗口风格Color: 颜色FocusedView: 当前View;Font: 字体LevelTabs: 类似Page ...
- 【原】The Linux Command Line - Redirection
● cat - Concatenate files● sort - Sort lines of text● uniq - Report or omit repeated lines● grep - P ...
- jquery中的 deferred之 deferred对象 (一)
案例: var def=$.Deferred(); console.log(def);//答案见 图1 图1: deferred就是一个有这些方法的对象. 看源码分析: Deferred: funct ...
- Linux Oracle安装
lsnrctl status // 查看linux系统oracle的监听状态lsnrctl start // 启动linux系统oracle的监听状态 sqlplus /nolog // 连接 ...
- eclipse git(版本回退)
https://www.cnblogs.com/duex/p/6389999.html