前端(HTML)+后端(Django)+数据库(MySQL):用户注册及登录演示
1、创建一个html文件用于简单的网页注册demo
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注册</title>
</head>
<body>
<!--表单域,action用于将获取的到信息提交到后台地址-->
<form action="save" method="get">
<span>
用户:<input type="text" name="username">
</span>
<br>
<span>
密码:<input type="password" name="password">
</span>
<br>
<span>
<input type="submit" name="submit1" value="注册">
</span>
</form>
</body>
</html>
2、创建一个html文件用于简单的网页登录demo
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录</title>
</head>
<body>
<form action="query" method="get">
<span>
用户:<input type="text" name="username">
</span>
<br>
<span>
密码:<input type="password" name="password">
</span>
<br>
<span>
<input type="submit" name="submit1" value="登录">
</span>
</form>
</body>
</html>
3、创建一个Django项目,并将刚才的两个html文件放入template模板文件夹中

4、打开Django项目下默认生成的urls.py文件,进行一些业务功能的编辑
"""Django01 URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/2.1/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: path('', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path
from django.shortcuts import render
from django.shortcuts import HttpResponse
import pymysql
#登录页面
def login(request):
#指定要访问的页面,render的功能:讲请求的页面结果提交给客户端
return render(request,'login.html')
#注册页面
def regiter(request):
return render(request,'regiter.html')
#定义一个函数,用来保存注册的数据
def save(request):
has_regiter = 0#用来记录当前账号是否已存在,0:不存在 1:已存在
a = request.GET#获取get()请求
#print(a)
#通过get()请求获取前段提交的数据
userName = a.get('username')
passWord = a.get('password')
#print(userName,passWord)
#连接数据库
db = pymysql.connect('127.0.0.1','root','123','db2')
#创建游标
cursor = db.cursor()
#SQL语句
sql1 = 'select * from user1'
#执行SQL语句
cursor.execute(sql1)
#查询到所有的数据存储到all_users中
all_users = cursor.fetchall()
i = 0
while i < len(all_users):
if userName in all_users[i]:
##表示该账号已经存在
has_regiter = 1
i += 1
if has_regiter == 0:
# 将用户名与密码插入到数据库中
sql2 = 'insert into user1(username,password) values(%s,%s)'
cursor.execute(sql2,(userName,passWord))
db.commit()
cursor.close()
db.close()
return HttpResponse('注册成功')
else:
cursor.close()
db.close()
return HttpResponse('该账号已存在')
def query(request):
a = request.GET
userName = a.get('username')
passWord = a.get('password')
user_tup = (userName,passWord)
db = pymysql.connect('127.0.0.1','root','123','db2')
cursor = db.cursor()
sql = 'select * from user1'
cursor.execute(sql)
all_users = cursor.fetchall()
cursor.close()
db.close()
has_user = 0
i = 0
while i < len(all_users):
if user_tup == all_users[i]:
has_user = 1
i += 1
if has_user == 1:
return HttpResponse('登录成功')
else:
return HttpResponse('用户名或密码有误')
urlpatterns = [
path('admin/', admin.site.urls),#系统默认创建的
path('login/',login),#用于打开登录页面
path('regiter/',regiter),#用于打开注册页面
path('regiter/save',save),#输入用户名密码后交给后台save函数处理
path('login/query',query)#输入用户名密码后交给后台query函数处理
]
5、运行整个Django项目,访问相应的url

数据库数据情况:



后台状态信息:

再次查看数据库数据:

6、再次进行登录操作,打开登录的url


测试一个用户名错误情况:

前端(HTML)+后端(Django)+数据库(MySQL):用户注册及登录演示的更多相关文章
- 关于Django数据库mysql连接错误问题Connection to api@localhost failed. [08001] Could not create connection to d
Connection to api@localhost failed. [08001] Could not create connection to d 错误类型 django连接mysql数据库错误 ...
- Django+pycharm+mysql 实现用户登录/注册(Django五)
首先是让Django项目与mysql数据库初步建立连接 具体做法见:pycharm连接mysql(注意其中第二步MySQL驱动最好安装最新版的) 这里讲一下我在做这一步遇到的问题.一般Driver 那 ...
- Django 数据库mysql到models的映射方法
Django自动生成models 如果数据库表已经存在,执行命令,可以自动生成Models模型,实现models与数据表的映射 >>> python manage.py inspec ...
- Django学习笔记(9)—— 开发用户注册与登录系统
一,项目题目: 开发用户注册与登录系统 该项目主要练习使用Django开发一个用户注册与登录的系统,通过这个项目然后巩固自己这段时间所学习的Django知识. 二,项目需求: 开发一个简单的用户登录与 ...
- 初识Django之前端后端与数据库的配置
目录 一.静态文件配置 二.关于form表单的补充 三.post请求出现403问题 四.request方法初识 4.1判断当前请求方式 4.2request.POST与request.GET 五.py ...
- Django框架之第二篇--app注册、静态文件配置、form表单提交、pycharm连接数据库、django使用mysql数据库、表字段的增删改查、表数据的增删改查
本节知识点大致为:静态文件配置.form表单提交数据后端如何获取.request方法.pycharm连接数据库,django使用mysql数据库.表字段的增删改查.表数据的增删改查 一.创建app,创 ...
- Django+Ajax+Mysql实现数据库数据的展示
最近老师让搞一个系统,仅仅展示一下数据库的数据 在做海底捞时,是交接的师兄的项目,用的语言是java,框架是SSM(Spring.SpringMVC.MyBatis),这次我准备用Python写,前端 ...
- python后端从数据库请求数据给到前端的具体实现
先来贴一窜代码让大家理解前端/后端/数据库的工作原理, 首先简要说明:前端向后端请求数据,后端根据前端请求数据的类别分析其需求,并连接到数据库获取相应数据: 来一段简单的实例代码模拟淘宝商城: 前端代 ...
- [技术博客]django连接mysql数据库的方法及部分问题的解决方法
配置机器介绍 操作系统:Ubuntu 18.04.2 LTS 64位 python版本:Python 3.6.7 Django版本:Django 2.2 MySql版本:5.7.26 数据库选择 我们 ...
随机推荐
- Flutter布局--appbar导航栏和状态栏
MaterialApp 先看下上图的具体用法:1. title:标题2. actions:表示右侧的按钮的动作3. leading:表示左侧的按钮的动作4. flexibleSpace:5. back ...
- 在Win7环境下搭建Geant4工作平台
本物理专业小硕,现在材料实验室工作,研究方向大概是核屏蔽材料的软件模拟吧.其实实验室里大多数师兄弟都是搞焊接的,平时能接触到这类直接给源码自己编译的软件的机会基本为零,所以一切都靠自己探索,成功搭建了 ...
- WIN10激活教程,亲测,有效
WIN10激活教程: 1.打开开始菜单,找到设置,点开“更新和安全”,切换到“激活”选项卡,查看到当前系统的激活状态 2.在搜索框输入“CMD”,出现“命令提示符”工具时,右击选择“以管理员身份”运行 ...
- 偶尔要用的git命令备忘
文档:https://git-scm.com/docs 列出所有远程空间: git remote -v 重命名远程空间: git remote rename <old> <new&g ...
- 性能优化-Bitmap内存管理及优化
Bitmap作为重要Android应用之一,在很多时候如果应用不当,很容易造成内存溢出,那么这篇文章的目的就在于探讨Bitmap的有效运用及其优化 缓存介绍 当多次发送请求的时候,请求同一内容,为了使 ...
- [转帖]Postgresql的csv日志设置
Postgresql的csv日志设置 2012年06月16日 09:27:00 weixin_34406796 阅读数 24 原文链接:https://my.oschina.net/Kenyon/ ...
- web 系统发展历程
文章目录 web系统的发展历程 ------- **单机`mysql`的美好年代** ------ **Memcached(缓存)+Mysql+垂直拆分** ------ **mysql 主从读写分离 ...
- LC 144. / 94. / 145. Binary Tree Preorder/ Inorder/ PostOrder Traversal
题目描述 144. Binary Tree Preorder Traversal 94. Binary Tree Inorder Traversal 145. Binary Tree Postorde ...
- Spring cloud的各类组件
Spring cloud 的各类组件 1.注册中心 eureka 2.ribbon 3.feign 4.hystirx 断路器 5.高速缓存器 redis 6.断路器Dashboard监控仪表盘
- MyBatis_02 框架
今日内容 动态SQL语句 Xml方式 注解方式 MyBatis的缓存 MyBatis的关联查询 MyBatis逆向工程 动态SQL语句 动态SQL是什么 就是相对与固定SQL.就是通过传入的参数不一样 ...