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):用户注册及登录演示的更多相关文章

  1. 关于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数据库错误 ...

  2. Django+pycharm+mysql 实现用户登录/注册(Django五)

    首先是让Django项目与mysql数据库初步建立连接 具体做法见:pycharm连接mysql(注意其中第二步MySQL驱动最好安装最新版的) 这里讲一下我在做这一步遇到的问题.一般Driver 那 ...

  3. Django 数据库mysql到models的映射方法

    Django自动生成models 如果数据库表已经存在,执行命令,可以自动生成Models模型,实现models与数据表的映射 >>> python manage.py inspec ...

  4. Django学习笔记(9)—— 开发用户注册与登录系统

    一,项目题目: 开发用户注册与登录系统 该项目主要练习使用Django开发一个用户注册与登录的系统,通过这个项目然后巩固自己这段时间所学习的Django知识. 二,项目需求: 开发一个简单的用户登录与 ...

  5. 初识Django之前端后端与数据库的配置

    目录 一.静态文件配置 二.关于form表单的补充 三.post请求出现403问题 四.request方法初识 4.1判断当前请求方式 4.2request.POST与request.GET 五.py ...

  6. Django框架之第二篇--app注册、静态文件配置、form表单提交、pycharm连接数据库、django使用mysql数据库、表字段的增删改查、表数据的增删改查

    本节知识点大致为:静态文件配置.form表单提交数据后端如何获取.request方法.pycharm连接数据库,django使用mysql数据库.表字段的增删改查.表数据的增删改查 一.创建app,创 ...

  7. Django+Ajax+Mysql实现数据库数据的展示

    最近老师让搞一个系统,仅仅展示一下数据库的数据 在做海底捞时,是交接的师兄的项目,用的语言是java,框架是SSM(Spring.SpringMVC.MyBatis),这次我准备用Python写,前端 ...

  8. python后端从数据库请求数据给到前端的具体实现

    先来贴一窜代码让大家理解前端/后端/数据库的工作原理, 首先简要说明:前端向后端请求数据,后端根据前端请求数据的类别分析其需求,并连接到数据库获取相应数据: 来一段简单的实例代码模拟淘宝商城: 前端代 ...

  9. [技术博客]django连接mysql数据库的方法及部分问题的解决方法

    配置机器介绍 操作系统:Ubuntu 18.04.2 LTS 64位 python版本:Python 3.6.7 Django版本:Django 2.2 MySql版本:5.7.26 数据库选择 我们 ...

随机推荐

  1. Flutter布局--appbar导航栏和状态栏

    MaterialApp 先看下上图的具体用法:1. title:标题2. actions:表示右侧的按钮的动作3. leading:表示左侧的按钮的动作4. flexibleSpace:5. back ...

  2. 在Win7环境下搭建Geant4工作平台

    本物理专业小硕,现在材料实验室工作,研究方向大概是核屏蔽材料的软件模拟吧.其实实验室里大多数师兄弟都是搞焊接的,平时能接触到这类直接给源码自己编译的软件的机会基本为零,所以一切都靠自己探索,成功搭建了 ...

  3. WIN10激活教程,亲测,有效

    WIN10激活教程: 1.打开开始菜单,找到设置,点开“更新和安全”,切换到“激活”选项卡,查看到当前系统的激活状态 2.在搜索框输入“CMD”,出现“命令提示符”工具时,右击选择“以管理员身份”运行 ...

  4. 偶尔要用的git命令备忘

    文档:https://git-scm.com/docs 列出所有远程空间: git remote -v 重命名远程空间: git remote rename <old> <new&g ...

  5. 性能优化-Bitmap内存管理及优化

    Bitmap作为重要Android应用之一,在很多时候如果应用不当,很容易造成内存溢出,那么这篇文章的目的就在于探讨Bitmap的有效运用及其优化 缓存介绍 当多次发送请求的时候,请求同一内容,为了使 ...

  6. [转帖]Postgresql的csv日志设置

    Postgresql的csv日志设置 2012年06月16日 09:27:00 weixin_34406796 阅读数 24   原文链接:https://my.oschina.net/Kenyon/ ...

  7. web 系统发展历程

    文章目录 web系统的发展历程 ------- **单机`mysql`的美好年代** ------ **Memcached(缓存)+Mysql+垂直拆分** ------ **mysql 主从读写分离 ...

  8. LC 144. / 94. / 145. Binary Tree Preorder/ Inorder/ PostOrder Traversal

    题目描述 144. Binary Tree Preorder Traversal 94. Binary Tree Inorder Traversal 145. Binary Tree Postorde ...

  9. Spring cloud的各类组件

    Spring cloud 的各类组件 1.注册中心 eureka 2.ribbon 3.feign 4.hystirx 断路器 5.高速缓存器 redis 6.断路器Dashboard监控仪表盘

  10. MyBatis_02 框架

    今日内容 动态SQL语句 Xml方式 注解方式 MyBatis的缓存 MyBatis的关联查询 MyBatis逆向工程 动态SQL语句 动态SQL是什么 就是相对与固定SQL.就是通过传入的参数不一样 ...