Python Django 实现简单注册功能
Python Django 实现简单注册功能
项目创建略,可参考前期文档介绍。
目录结构如下

编辑views.py
from django.shortcuts import render # Create your views here. from django.http import HttpResponse
from django.shortcuts import render
from common.DBHandle import DataBaseHandle
import time def djangoHello(request): return HttpResponse('Hello Django!') def index(request): return render(request,'index.html') def login(request):
print('login_func') usn = request.POST['username']
pwd = request.POST['password']
host = '127.0.0.1'
username = 'username'
password = 'password'
database = 'dbname'
port = 3306
# 实例化 数据库 连接
DbHandle = DataBaseHandle(host, username, password, database, port)
localTime = time.localtime(time.time())
create_time = time.strftime("%Y-%m-%d %H:%M:%S", localTime)
sql = "insert into user(username,password,create_time) values ('%s','%s','%s')" % (usn, pwd, create_time)
DbHandle.insertDB(sql)
DbHandle.closeDb() return render(request,'login.html')
接下来编辑urls.py
"""FirstWeb 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 fistWeb import views urlpatterns = [
path('admin/', admin.site.urls),
path('hello/',views.djangoHello),
path('index/',views.index),
path('login/',views.login),
]
在应用下创建templates 文件夹
并创建html文件 index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>FirstWeb</title>
</head>
<body>
<h1>信息注册</h1>
<!-- action="/login/" 这里是 提交后访问的路径,因此 要在 urls 添加改路径 -->
<form action="/login/" method="post">
{% csrf_token %}
用户名:<input type="text" name="username" id="usn"><br>
密 码:<input type="password" name="password" id="pwd"><br>
<input type="submit" value="注册">
</form> </body>
</html>
login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>FirstWeb-登录</title>
</head>
<body>
<h1>您好,您已注册成功!</h1>
</body>
</html>
介绍一下添加的common文件
添加一个数据库封装的类。
# FileName : DBHandle.py
# Author : Adil
# DateTime : 2018/11/29 2:03 PM
# SoftWare : PyCharm import pymysql # username : adil
# password : helloyyj class DataBaseHandle(object):
''' 定义一个 MySQL 操作类''' def __init__(self,host,username,password,database,port):
'''初始化数据库信息并创建数据库连接'''
# 下面的赋值其实可以省略,connect 时 直接使用形参即可
self.host = host
self.username = username
self.password = password
self.database = database
self.port = port
self.db = pymysql.connect(self.host,self.username,self.password,self.database,self.port,charset='utf8') # 这里 注释连接的方法,是为了 实例化对象时,就创建连接。不许要单独处理连接了。
#
# def connDataBase(self):
# ''' 数据库连接 '''
#
# self.db = pymysql.connect(self.host,self.username,self.password,self.port,self.database)
#
# # self.cursor = self.db.cursor()
#
# return self.db def insertDB(self,sql):
''' 插入数据库操作 ''' self.cursor = self.db.cursor() try:
# 执行sql
self.cursor.execute(sql)
# tt = self.cursor.execute(sql) # 返回 插入数据 条数 可以根据 返回值 判定处理结果
# print(tt)
self.db.commit()
print('执行成功')
except:
# 发生错误时回滚
self.db.rollback()
print('执行失败')
finally:
self.cursor.close() def deleteDB(self,sql):
''' 操作数据库数据删除 '''
self.cursor = self.db.cursor() try:
# 执行sql
self.cursor.execute(sql)
# tt = self.cursor.execute(sql) # 返回 删除数据 条数 可以根据 返回值 判定处理结果
# print(tt)
self.db.commit()
except:
# 发生错误时回滚
self.db.rollback()
finally:
self.cursor.close() def updateDb(self,sql):
''' 更新数据库操作 ''' self.cursor = self.db.cursor() try:
# 执行sql
self.cursor.execute(sql)
# tt = self.cursor.execute(sql) # 返回 更新数据 条数 可以根据 返回值 判定处理结果
# print(tt)
self.db.commit()
except:
# 发生错误时回滚
self.db.rollback()
finally:
self.cursor.close() def selectDb(self,sql):
''' 数据库查询 '''
self.cursor = self.db.cursor()
try:
self.cursor.execute(sql) # 返回 查询数据 条数 可以根据 返回值 判定处理结果 data = self.cursor.fetchall() # 返回所有记录列表 print(data) # 结果遍历
for row in data:
sid = row[0]
name = row[1]
# 遍历打印结果
print('sid = %s, name = %s'%(sid,name))
except:
print('Error: unable to fecth data')
finally:
self.cursor.close() def closeDb(self):
''' 数据库连接关闭 '''
self.db.close() if __name__ == '__main__': DbHandle = DataBaseHandle('127.0.0.1','username','password','dbname',3306) sql = "insert into JdwSpider(image_name,image_url,Spider_time) values ('%s','%s','%s')" % (
'', '', '2018-12-04 15:25:21')
DbHandle.insertDB(sql)
# DbHandle.insertDB('insert into test(name) values ("%s")'%('FuHongXue'))
# DbHandle.insertDB('insert into test(name) values ("%s")'%('FuHongXue'))
# DbHandle.selectDb('select * from test')
# DbHandle.updateDb('update test set name = "%s" where sid = "%d"' %('YeKai',22))
# DbHandle.selectDb('select * from test')
# DbHandle.insertDB('insert into test(name) values ("%s")'%('LiXunHuan'))
# DbHandle.deleteDB('delete from test where sid > "%d"' %(25))
# DbHandle.selectDb('select * from test')
DbHandle.closeDb()
以上代码实现了一个简单的注册页面,并将注册信息存放到数据库表中。
启动项目演示

打开浏览器输入url:http://127.0.0.1:8000/index/

点击注册提交按钮,页面跳转如下

查看数据库表,可以看到新增的用户信息。

Python Django 实现简单注册功能的更多相关文章
- Python django实现简单的邮件系统发送邮件功能
Python django实现简单的邮件系统发送邮件功能 本文实例讲述了Python django实现简单的邮件系统发送邮件功能. django邮件系统 Django发送邮件官方中文文档 总结如下: ...
- python实现软件的注册功能(机器码+注册码机制)
http://www.cnblogs.com/cquptzzq/p/5940583.html 一.前言: 目的:完成已有python图像处理工具的注册功能 功能:用户运行程序后,通过文件自动检测认证状 ...
- python django 实现验证码的功能
我也是刚学Python Django不久很多都不懂,所以我现在想一边学习一边记录下来然后大家一起讨论! 验证码功能一开始我在网上找了很多的demo但是我在模仿他们写的时候,发现在我的版本上根本就不能 ...
- django框架--登录注册功能(ajax)
注册 实现一个注册功能 编写 html 内容 input 标签 csrf_token ajax 路由 视图: 提供页面 负责处理业务,返回响应 接收到 post 请求传递的参数 写库 返回 ...
- Python Django 之 简单入门
一.下载Django并安装 1.下载Django 2.安装 二.新建Django project 1.使用django-admin新建mysite 项目 django-admin startproje ...
- Django实现简单分页功能
使用django的第三方模块django-pure-pagination 安装模块: pip install django-pure-pagination 将'pure_pagination'添加到s ...
- Python Django 2.1登录功能_1
#在上篇的基础上进行#在.../sign/templates/index.html文件,开发登录表单 <html> <head> <title>Django Pag ...
- pythonのdjango Form简单应用。
Form表单有两种应用场景: 1.生成HTML标签. 2.验证输入内容. 如果我们在django程序中使用form时,需要在views中导入form模块 from django import form ...
- pythonのdjango CSRF简单使用
一.简介 django为用户实现防止跨站请求伪造的功能,通过中间件 django.middleware.csrf.CsrfViewMiddleware 来完成.而对于django中设置防跨站请求伪造功 ...
随机推荐
- Revit 2019 下载链接
[安装环境]:win7/win8/win10 [64位下载] 百度网盘链接:pan.baidu.com/s/1Vq5Cnyj1G-oMNup_sXvxfQ 提取码:d6xd
- springboot启动时控制台不显示映射的URL
背景 今天,第一次使用 2.2.0 版本的springboot,在访问接口时发现访问不到,于是在控制台进行 URL 搜索,发现并相关没有内容 原因 springboot版本差异,切换回 2.0.5.R ...
- nwjs-简介
nwjs是基于nodejs的,它支持nodejs所有的api,主要用于跨平台轻量级桌面应用开发,运行环境包括32位和64位的Window.Linux和Mac OS nwjs是在英特尔开源技术中心创建的 ...
- treegrid 表格树
treegrid 实现表格树的结构 效果图: 第一步:页面布局 <div class="col-sm-12 select-table table-striped" styl ...
- CF1163E Magical Permutation(线性基,构造)
虽然做起来有一点裸……但是就是想不到啊…… 首先令 $d_i=p_i\oplus p_{i-1}$,那么 $d_i$ 都是 $S$ 中的数,$a_i=d_i\oplus d_{i-1}\oplus \ ...
- 一张思维导图辅助你深入了解 Vue | Vue-Router | Vuex 源码架构
1.前言 本文内容讲解的内容:一张思维导图辅助你深入了解 Vue | Vue-Router | Vuex 源码架构. 项目地址:https://github.com/biaochenxuying/vu ...
- 实验二 Java基础(数据/表达式、判定/循环语句)
实验二 (一)实验内容 编写简单的计算器,完成加减乘除模运算. 要求从键盘输入两个数,使用判定语句选择一种操作,计算结果后输出,然后使用判定和循环语句选择继续计算还是退出. 编写测试代码,测试验证. ...
- CF 715 E. Complete the Permutations
CF 715 E. Complete the Permutations 题目大意:给定两个排列\(p,q\)的一部分.定义两个排列\(p,q\)的距离为使用最少的交换次数使得\(p_i=q_i\).对 ...
- UAVStack JVM监控分析工具:图形化展示采集及分析监控数据
摘要:UAVStack推出的JVM监控分析工具提供基于页面的展现方式,以图形化的方式展示采集到的监控数据:同时提供JVM基本参数获取.内存dump.线程分析.内存分配采样和热点方法分析等功能. 引言 ...
- WPF 页面导航
<Button x:Name="btnReset" Click="btnReset_Click" Content="重 置" Grid ...