django写一个简单的登陆注册
要写这个,前提还是需要知道三个知识:
一个是urls.py,它是写我们的路由关系的,之前我写了通过wsgiref写一个简单的服务端,也用到了路由,就是
请求过来的url和视图函数的对应关系。
二是就是几个类,render,HttpResponse,redirect,我就说说功能
render:将模板(也就是html文件)渲染,再发送到前端页面---大概就是这样的功能,用词不太准确
HttpResponse:将字符串返回到前端页面
redirect:重定向的功能
三就是数据库相关的,orm吧
1、注册登陆两个功能,想都不要在项目templates文件夹中写两个html页面,一个是登陆,一个是注册。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>register</title>
</head>
<body>
<h1>注册界面</h1>
<form action="" method="post">
用户名:<input type="text" name="name"><br>
密码:<input type="password" name="pwd"><br>
确认密码:<input type="password" name="re_pwd"><br>
<input type="submit" value="注册">
</form>
</body>
</html> <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<body>
<h1>登陆界面</h1>
{#最简单的html代码,哈哈#}
{#这里要提醒下,提交到后台的get,post方式都可以,但是作为账户数据的话,用post#}
<form action="/login/" method="post">
用户名:<input type="text" name="name"><br>
密码:<input type="password" name="pwd"><br>
<input type="submit" value="登陆">
</form>
</body>
</html>
2、写好了我们首先去urls.py文件中写好路由,把视图函数映射关系写好
from django.conf.urls import url
from django.contrib import admin
from app01 import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^login', views.login),
url(r'^register', views.register),
]
3、写好了就去app01中view文件中写相应的函数了,先写个空函数占位吧
4、需要数据库,先去app01中models.py写一个类(也就是创建表),属性写好了,就执行两句命令
python3 manage.py makemigrations
python3 manage.py migrate
这样我们的表就创建好了,那么就应该去视图函数写相关逻辑
from django.db import models # Create your models here. class User(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=32)
pwd = models.CharField(max_length=32) ##创建好了,就在cmd中执行上面两条命令就好
5、在视图函数中写逻辑代码
from django.shortcuts import render,HttpResponse,redirect
from app01 import models
# Create your views here. def login(request):
# request这是前端请求发来的请求,携带的所有数据,django给我们做了一些列的处理,封装成一个对象传过来
# 其实挺简单,学会用它给你的一些方法就好了,其实你自己也想到它是怎样处理的。
if request.method == 'GET':
return render(request,'login.html')
if request.method == 'POST':
name = request.POST.get('name')
pwd = request.POST.get('pwd')
user_obj = models.User.objects.filter(name=name,pwd=pwd).first()
if user_obj:
return HttpResponse('登陆成功')
else:
return HttpResponse('用户名或密码错误') def register(request):
if request.method == 'GET':
return render(request,'register.html')
if request.method == 'POST':
name = request.POST.get('name')
pwd = request.POST.get('pwd')
re_pwd = request.POST.get('re_pwd')
if name and pwd and re_pwd:
if pwd == re_pwd:
user_obj = models.User.objects.filter(name=name).first()
if user_obj:
return HttpResponse('用户已存在')
else:
models.User.objects.create(name=name,pwd=pwd).save()
return redirect('/login/')
else:
return HttpResponse('两次密码不一致') else:
return HttpResponse('不能有空!')
6、启动django项目就行了,然后在浏览器输入对应的url,就行操作。
django写一个简单的登陆注册的更多相关文章
- 初学html,任务2:写一个简单的登陆/注册界面
先在body中把最基础的标签写出来 现在页面运行出来是这样的 就是一个没有任何样式的基础界面: 接下来我们为这些标签加上样式 首先还是让页面所有元素的padding和margin都设置为0, 清除浏览 ...
- 用Html写一个简单的登陆界面
<!DOCTYPE html> <html> <title>登陆页面</title> <head> <meta charset=&qu ...
- ########django-基于中间件写一个限制频繁登陆########
django-基于中间件写一个限制频繁登陆 额额,标题已经很醒目了,通过中间件去实现,其他方法也可以实现 浏览器前端传来的请求,必须通过中间件,才能到后面路由,视图函数,所以我们在中间件那里做一层处理 ...
- 使用QT实现一个简单的登陆对话框(纯代码实现C++)
使用QT实现一个简单的登陆对话框(纯代码实现C++) 效果展示 使用的QT控件 控件 描述 QLable 标签 QLineEdit 行文本框 QPushButton 按扭 QHBoxLayout 水平 ...
- 用Python写一个简单的Web框架
一.概述 二.从demo_app开始 三.WSGI中的application 四.区分URL 五.重构 1.正则匹配URL 2.DRY 3.抽象出框架 六.参考 一.概述 在Python中,WSGI( ...
- 如何写一个简单的http服务器
最近几天用C++写了一个简单的HTTP服务器,作为学习网络编程和Linux环境编程的练手项目,这篇文章记录我在写一个HTTP服务器过程中遇到的问题和学习到的知识. 服务器的源代码放在Github. H ...
- bootstrap 一个简单的登陆页面
效果如图:用bootstrap 写的一个简单的登陆 一.修改样式 样式可以自己调整,例如换个背景色之类的,修改 background-color属性就可以 #from { background-col ...
- express 写一个简单的web app
之前写过一个简单的web app, 能够完成注册登录,展示列表,CURD 但是版本好像旧了,今天想写一个简单的API 供移动端调用 1.下载最新的node https://nodejs.org/zh- ...
- 如何写一个简单的HTTP服务器(重做版)
最近几天用C++重新写了之前的HTTP服务器,对以前的代码进行改进.新的HTTP服务器采用Reactor模式,有多个线程并且每个线程有一个EventLoop,主程序将任务分发到每个线程,其中采用的是轮 ...
随机推荐
- SQL Server 数据库定时自动备份(转)
本文转载自:http://www.cnblogs.com/zhangq723/archive/2012/03/13/2394102.html 作者:清风寻梦 在SQL Server中出于数据安全的考虑 ...
- 从零开始的全栈工程师——MySQL数据库( Dos命令 ) ( phpstudy )
MySQL是一个关系型数据库,存在表的概念.结构,数据库可以存放多张表,每个表里可以存放多个字段,每个字段可以存放多个记录. phpstudy使用终端打开数据库的命令行 密码: root 数据库 查看 ...
- 【Android】2.0 Android开发环境的搭建——Eclipse
1.0 eclipse,这可不算谷歌开发的,是IBM公司开发的,而且是Java语言写的 2.0 eclipse怎么下.百度“eclipse”,进入eclipse官网 然后,瞎几把下吧……,实在不行百度 ...
- jquery获取transform里面的值
用transform的translateX写了一个侧滑效果,如何获取它改变的值是多少呢? 获取translateX值的方法: $('div').css("transform").r ...
- 【Eclipse】在Eclipse上安装Spket
转自:https://www.cnblogs.com/HDK2016/p/7099383.html 1,Spket是什么? Spket是一种编辑javaScript和XML代码的工具,可以用他自己的 ...
- MD5简单实例
如图当点击按钮时,会先判断是否第一次登陆,如果是第一次登陆登陆则会弹出设置密码的弹窗,若果登陆过则弹出登陆弹窗 其中输入的密码会用MD5加密下 package com.org.demo.wangfen ...
- python获取硬件信息模块
https://github.com/redhat-cip/hardware https://github.com/rdobson/python-hwinfo https://github.com/r ...
- 解决Image在canvas以及audio、video在AudioContext下跨域问题
媒体元素嘛,在对应的标签或对象上加上 crossOrigin = 'anonymous' 即可. 例如 Image 在canvas 上绘制时会跨域: <img crossOrigin=" ...
- Caused by: java.lang.ClassNotFoundException: org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter
严重: StandardWrapper.Throwableorg.springframework.beans.factory.BeanCreationException: Error creating ...
- SQL转Linq工具的使用——Linqer
官方下载网站:http://www.sqltolinq.com/ 本文介绍版本为Linqer 4.5.7 第一步:下载下来,解压,双击安装.exe文件,运行界面如下. 第二步:建立与数据库的连接 点击 ...