[py][mx]django使用class写views-免去判断方法的烦恼
修改views使用class模式
类模式写views - 免去了函数模式的判断的烦恼
users/views.py
from django.views.generic import View
class UserView(View):#继承了View类,它里面实现get post等方法, 使用类模式写免去了函数模式的判断
def get(self, request):
return render(request, "login.html", {})
def post(self, request):
user_name = request.POST.get("username", "")
pass_word = request.POST.get("password", "")
user = authenticate(username=user_name, password=pass_word)
if user is not None: # 用户名密码验证成功
login(request, user) # django执行用户登录
return render(request, "index.html")
else:
return render(request, "login.html", {'msg': "用户名或密码错误"})
函数模式写views - 需要手动判断方法,有点麻烦
users/views_old.py
def user_login(request):
if request.method == "POST":
user_name = request.POST.get("username", "")
pass_word = request.POST.get("password", "")
user = authenticate(username=user_name, password=pass_word)
if user is not None: # 用户名密码验证成功
login(request, user) # django执行用户登录
return render(request, "index.html")
else:
return render(request, "login.html", {'msg': "用户名或密码错误"})
elif request.method == "GET":
return render(request, "login.html", {})

修改urls.py 调用views里对应的类
from django.views.generic import TemplateView
from users import views
urlpatterns = [
path('', TemplateView.as_view(template_name='index.html'), name="index"),
path('login/', views.UserView.as_view(), name="login"),
path('xadmin/', xadmin.site.urls),
]

[py][mx]django使用class写views-免去判断方法的烦恼的更多相关文章
- [py][mx]django form验证-给db减压
django form认证-解压db压力 一般系统都需要前后端都验证 前端验证容器逃逸破解,如通过js console口去发 试想如果后端只有db验证,那么前端无论发什么后端都查询一次db,对db压力 ...
- [py][mx]django处理登录逻辑
浏览器同源策略(same-origin policy) csrf攻击防御核心点总结 django的cookie和session操作-7天免登录 flask操作cookie&django的see ...
- [py][mx]django模板继承-课程列表页
课程列表页分析 1,机构类型 2,所在地区 3.排序 学习人数 先分析下 纵观页面,页头页脚都一样. django提供了模板继承. 至少 不同页面的title 面包屑路径 content内容不一致,以 ...
- [py][mx]django项目-让系统用自定义的users表认证
项目开端 参考的是mxonline项目 先把这两项完成 1.app设计 2.app的models的设计 经过分析系统有四个模块 users - 用户管理 course - 课程管理 oranizati ...
- [py][mx]django自定义认证类-实现邮箱作为用户名登录
创建自定义验证用户名密码类CustomBackend users/views.py from django.contrib.auth import authenticate, login from d ...
- [py][mx]django课程页显示city和机构封面图
city和课程机构信息展示到前台去 organization/views.py from django.views.generic.base import View from organization ...
- [py][mx]django xadmin后台配置
xadmin配置 - 安装 pip install -r https://github.com/sshwsfc/xadmin/blob/django2/requirements.txt 以下被我测试通 ...
- 学一学书里的django是怎么写views.py的
他山之石,可以攻玉嘛. 好的习惯有时也是学别人来养成的. 外国人的编码习惯,学啊. from django.core.urlresolvers import reverse_lazy from dja ...
- [py][mx]django静态文件目录配置
使用TemplateView直接返回html from django.views.generic import TemplateView urlpatterns = [ path('',Templat ...
随机推荐
- numpy常用举例
转自https://morvanzhou.github.io/tutorials/data-manipulation/np-pd/2-1-np-attributes/ numpy 的属性: ndim: ...
- linux c++环境
set expandtab set autoindent set smartindent
- jquery.gritter.js简介
Gritter 是一个小型的 jQuery 消息通知插件,通知效果如下图所示: 参考网
- C++中三种创建对象的方法【转】
我们都知道C++中有三种创建对象的方法,如下: #include <iostream> using namespace std; class A { private: int n; pub ...
- 如何使用Countifs函数动态统计
我们以前就是一个函数一个功能,一个函数一个区域,这次我们使用动态函数.我们先写好条件范围,因为我们要引用. 同样的我们写下函数出来,我们先把Countifs写出来.选择完区域之后如下图. 条件 ...
- Android studio快捷键设置
Android Studio格式化代码设置和代码风格设置.代码提示键 http://blog.csdn.net/u010156024/article/details/48207145 Android ...
- 解决Devexpress ChartControl的CalcHitInfo当中SeriesPoint为Null的问题
Winform程序 ChartControl的RuntimeHitTesting属性一定要设为True. Line Series markers的Visible一定要弄成True.CalcHitInf ...
- linux shell脚本中 mode=${1:-sart} filename=${fileuser:-"filename"}
$1代表第二个参数m=${1:-start}表示如果$1存在且不为空,m就是$1如果$1不存在或为空,那么m就是start filename=${fileuser:-"filename&qu ...
- linux下jmeter持续集成Jenkins部署时问题解决
之前成linux下安装了Jenkins,并做了一些简单的工作,这次正好将jmeter也集成进去,在实际操作时发现好多坑,写下做记录 怎么安装这里就不介绍了,网上很多资料,这里只记录问题,以供大家参数 ...
- eclipse打断点只进入class文件中的解决办法
内容来源 https://www.cnblogs.com/scode2/p/8671908.html#undefined 是由于对应的Java类跟编译后的class文件,没有关联上, 解决办法: 在打 ...