啃了几天文档,感觉能理解了这个框架,但是真的下手的时候真的不知道从何开始。

orm即Object-Relationl Mapping,看这名字就是操作数据库的,用过ssm,不过django操作数据库是真的强大,直接用model去创建表

mtv也了解,model,templates,views。感觉上和mvc(model,view,control)类似,但是功能太强大,前者的view感觉就是后者的view加control,url config看的头也大,到底怎么构成的,模板里又去了哪里。数据从哪来到哪去

诶,看了下,说如果先从flask入手,再去django就能更好的理解,主要django真的太强大了,给我的感觉就是很多一个什么都能做的机器和一堆组合键。。。。

下面进入正题吧

要实现功能的话,先创建一个login的app吧,用python manage.py startapp login创建一个login,我这是直接放在之前的那个项目里了,

from django.db import models
import datetime
from django.utils import timezone class User(models.Model): gender = (
('male','男'),
('female','女'),
) name = models.CharField(max_length=128,unique=True)
password = models.CharField(max_length=258)
sex = models.CharField(max_length=32,choices=gender,default='男')
c_time = models.DateTimeField(auto_now_add=True) def __str__(self):
return self.name # Create your models here.

我创建了这些字段,性别这边可能有点看不懂,我设置了默认为男。

然后去setting里把login添加到INSTALLED_APPS

然后去创建数据库python manage.py makemigration login

在输入python manage.py migrate,数据库对应的模型就创建好了,然后去admin里注册一下

from django.contrib import admin
from . import models admin.site.register(models.User) # Register your models here.

之后,启动服务,在后台就可以添加用户了。

到这不得不再感慨下django的功能强大,十来行代码就是一个功能。

去view改视图,创建login方法

from __future__ import unicode_literals

from django.shortcuts import render

# Create your views here.
from django.shortcuts import render,render_to_response
from django.http import HttpResponse,HttpResponseRedirect
from django.template import RequestContext
from django import forms
from .models import User #表单
class UserForm(forms.Form):
name = forms.CharField(label='用户名',max_length=100)
password = forms.CharField(label='密码',widget=forms.PasswordInput()) def login(req):
if req.method == 'POST':
uf = UserForm(req.POST)
if uf.is_valid():
#获取表单用户密码
username = uf.cleaned_data['username']
password = uf.cleaned_data['password']
#获取的表单数据与数据库进行比较
user = User.objects.filter(username__exact = username,password__exact = password)
if user:
#比较成功
response = HttpResponseRedirect('/right/')
#将username写入浏览器cookie,失效时间为3600
response.set_cookie('username',username,3600)
return response
else:
#比较失败
return HttpResponseRedirect('/wrong/')
else:
uf = UserForm()
return render(req,'login/login.html',{'uf':uf})

根据代码,不要忘了去创建对应的html文件,还有就是改路由。

django 完成登录功能的更多相关文章

  1. Django开发登录功能实战

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:凡夫俗子66 Django 如果是定义函数写登录路由,需要判断请求方法 ...

  2. 6 Django REST framework JWT 和登录功能实现

    JWT 在用户注册或登录后,我们想记录用户的登录状态,或者为用户创建身份认证的凭证. 我们不再使用Session认证机制,而使用Json Web Token认证机制. Json web token ( ...

  3. django BBS project login登录功能实现

    1.models from django.db import models # Create your models here. from django.contrib.auth.models imp ...

  4. 第三百八十五节,Django+Xadmin打造上线标准的在线教育平台—登录功能实现,回填数据以及错误提示html

    第三百八十五节,Django+Xadmin打造上线标准的在线教育平台—登录功能实现 1,配置登录路由 from django.conf.urls import url, include # 导入dja ...

  5. Django框架之cookie和session及开发登录功能

    1.cookie是什么? Web应用程序是使用HTTP协议传输数据的.HTTP协议是无状态的协议.一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接.这就意味着服务器无法从 ...

  6. Django流程-以登录功能为例

    Django流程-以登录功能为例 一.注意点 1.新创建的app一定要先去settings.py注册 简写:'app01' 完整:'app01.apps.App01Config' 2.启动Django ...

  7. django用户登录和注销

    django版本:1.4.21. 一.准备工作 1.新建项目和app [root@yl-web-test srv]# django-admin.py startproject lxysite [roo ...

  8. [个人网站搭建]·Django增加评论功能(Python3)

    [个人网站搭建]·Django增加评论功能 个人主页--> https://xiaosongshine.github.io/ 个人网站搭建github地址:https://github.com/ ...

  9. (22)Ajax的基本使用(实现登录功能和局部刷新以及防止跨站请求伪造攻击)

    Ajax的作用 前后端分离的项目,需要交互,就要通过Ajax来完成交互 AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”.即 ...

随机推荐

  1. 2019sdqdCSP-J游记

    特别鸣谢:Miku -------------------------- 中午上了车,和ljx坐在一块.太阳是多么好啊,我们在看着刚出的tg题,cmz找不到了准考证,sbl在临时打印准考证 等到好不容 ...

  2. 转: Laravel的数据库迁移 介绍的比较清晰

    原文: https://blog.sbot.io/articles/12/Laravel-数据库迁移(Database-Migrations)操作实例 很多人可能在学习Laravel框架的时候,对La ...

  3. STL-queue 队列

    #include <iostream> #include <queue> using namespace std; int main() { // queue也很简单 // p ...

  4. Python 教你 4 行代码开发新闻网站通用爬虫

    \ ​ GNE(GeneralNewsExtractor)是一个通用新闻网站正文抽取模块,输入一篇新闻网页的 HTML, 输出正文内容.标题.作者.发布时间.正文中的图片地址和正文所在的标签源代码.G ...

  5. 下载thinkphp5.0

    在服务器文件中右击Git_Bash_Here打开 在命令框写入 首先克隆下载应用项目仓库   git clone https://github.com/top-think/think tp5 tp5代 ...

  6. vue 项目

    项目搭建 1. npm install -g @vue/cli 2.vue -h 3.vue create list-demo 4.yarn serve 运行项目 路由 1.yarn add vue- ...

  7. Java(二)Arrays工具类

    Arrays是一个专门用于操作数组的工具类,该类位于java.util包中. Arrays的常用方法: 1.排序方法 原型:static void sort(int [] a) 功能:对指定的int型 ...

  8. 3、const与constexpr

    初遇到constexpr真的是有点懵比,看了很多博客也没看懂,不知道是我太笨,还是别人写的太深奥?总之经过一番折腾算是入门了.一下是我个人总结,有不对的地方望指出. 一.学习const与constex ...

  9. unserialize():Error at offset 0 of 96 bytes是什么意思

    数据库有个列是数组序列化后存到数据库的,取出来得反序列化, php想要把数组保存到数据库里,有两种序列化方式,分别是: //php系统序列化 $b = serialize($a);    //序列化数 ...

  10. 最短路-A - 畅通工程续

    A - 畅通工程续 某省自从实行了很多年的畅通工程计划后,终于修建了很多路.不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短很多.这 ...