------------------------------------(分割线)-----------------------------------------------------------------------------------------------------------

项目环境: pycharm 2018 专业版  win10 专业版 python 3.7

项目部署截图

前端代码:

regist.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>登录页面练习</title>
<style>
body{
background-color: rgb(217, 235, 250);
} .loginn{
background-color: white;
height: 320px;
width: 240px;
padding: 25px;
margin-top: 150px;
margin-left:60%;
border-radius: 25px;
box-shadow: 4px 4px 8px rgba(0, 0, 0,0.5);
}
.loginn>p{
margin-left: 40%;
margin-top: 10px;
color:black;
font-size: 20px;
} .LOGB{
border-collapse: separate;
border-radius: 15px;
border: 1px solid rgb(167, 160, 160);
text-align: right;
width: 95%;
height: 30px; }
#log1{
text-align: center;
width: 180px;
background-color: rgb(137, 202, 180);
margin-left: 10%;
border-radius: 25px;
outline: none; } .LOGE{
font-size: 10px;
margin-left: 30%;
margin-bottom: 10%;
}
.input2{
outline: none;
border: 0px;
margin-right: 20%; } </style>
</head>
<body> <div class="loginn">
<p>注册</p>
<form action="http://127.0.0.1:5000/rsuccess/", method="post">
<table class="LOGB" cellspacing="0">
<tr>
<td>用户名:&nbsp;</td>
<td><input type="text" placeholder="姓名" class="input2" name="rename"></td>
</tr> </table>
<br>
<table class="LOGB" cellspacing="0" >
<tr>
<td>密码: </td>
<td><input type="password" placeholder="你的密码" class="input2" name="repwd"></td>
</tr>
</table>
<br>
<table class="LOGB" cellspacing="1">
<tr>
<td>+86:</td>
<td><input type="text" maxlength="11" placeholder="手机号码" class="input2" ></td>
</tr> </table>
<br>
<table class="LOGB" cellspacing="0">
<tr>
<td>验证码:</td>
<td><input type="text" style="border:0"class="input2" ></td> </tr>
</table>
<br>
<a href=""><button id="log1">注册</button></a>
<div class="LOGE">
<p><a href="{{ url_for('login_html') }}">已有账号?请登录</a></p>
</div> </form> </div> </body>
</html>

login.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>登录页面练习</title>
<style> body{
background-color: rgb(217, 235, 250); } .loginn{
background-color: white;
height: 320px;
width: 240px;
padding: 25px;
margin-top: 150px;
margin-left:60%;
border-radius: 25px;
box-shadow: 4px 4px 8px rgba(0, 0, 0,0.5);
}
.loginn>p{
margin-left: 40%;
margin-top: 10px;
color:black;
font-size: 20px;
} .LOGB{
border-collapse: separate;
border-radius: 15px;
border: 1px solid rgb(167, 160, 160);
text-align: right;
width: 98%;
height: 40Px;; }
.LOGD{
width: 80%;
height: 35px;
margin-left: 8%;
border-radius: 25px;
background-color: rgb(160, 207, 192);
border: 1px solid wheat;
outline: none;
}
.LOGE{
font-size: 10px;
margin-left: 30%;
margin-bottom: 10%;
}
.input2{
outline: none;
border: 0px;
margin-right: 20%; } </style>
</head>
<body> <div class="loginn">
<p>登录</p>
<br>
<form action="http://127.0.0.1:5000/lsuccess/" method="post">
<table class="LOGB" cellspacing="0">
<tr>
<td>用户名:&nbsp;</td>
<td><input type="text" placeholder="姓名" class="input2" name="username"></td>
</tr> </table>
<br>
<table class="LOGB" cellspacing="0" >
<tr>
<td>密码: </td>
<td><input type="password" placeholder="你的密码" class="input2" name="password"></td>
</tr>
</table>
<br>
<br>
<div class="LOGD">
<a href=""><button class="LOGD" >登录</button></a>
</div>
<br>
<div class="LOGE">
<p>没有账号?<a href="{{ url_for('regist_html') }}">立即注册</a></p>
</div>
</form> </div> </body>
</html>

前端不是我写的,是一位小姐姐写的~~
-------------------------------------------------------------------------------------------------------------------------------

from flask import Flask ,request ,render_template
from flask_sqlalchemy import SQLAlchemy import config
app = Flask(__name__) app.config.from_object(config)
db = SQLAlchemy(app)
#对flask进行一个初始化
#创建一个simple表
class Simple(db.Model):
__tablename__ = 'simple'
id = db.Column(db.Integer ,primary_key=True , autoincrement=True)
user = db.Column(db.String(100), nullable=False,unique=True)
pwd = db.Column(db.CHAR(50) , nullable=False ,unique=True)
db.create_all() @app.route('/')
# -----------------------------------------------------------
def index():
return "这是一个首页" @app.route('/lsuccess/', methods=['post' ,'GET'])
def login():
if request.method == "POST":
user = request.form.get('username')
pwd = request.form.get('password')
if user == Simple.user and pwd == Simple.pwd:
return "参数请求不正常"
else:
result = Simple.query.filter(Simple.user == user and Simple.pwd == pwd).first()
return (" username = %s pwd = %s" %(result.user ,result.pwd))
if request.method != 'get':
return "前端的锅" @app.route('/rsuccess/',methods=['POST' ,'GET'])
def regist_function():
if request.method =="POST":
user = request.form.get('rename')
password = request.form.get('repwd')
simple1 = Simple(user=user, pwd=password)
db.session.add(simple1)
db.session.commit()
return ("注册成功 账号 = %s 密码= %s" % (user, password))
# pass @app.route('/regist/')
def regist_html():
return render_template('regist.html') @app.route('/login/')
def login_html():
return render_template('login.html') if __name__ == '__main__':
app.run(debug = True)

config.py

DIALECT = 'mysql'
DRIVER = 'pymysql'
USERNAME = 'root'
PASSWORD = 'root'
HOST = 'localhost'
PORT = '3306'
DATABASE = 'test'
SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALECT, DRIVER, USERNAME, PASSWORD, HOST, PORT, DATABASE) SQLALCHEMY_TRACK_MODIFICATIONS = False

建议写后端的人,以后和前端进行拼接任务的,一定要和前端的人商量好,这个页面该怎么怎么跳转,到底是谁来实现。实现之后又是什么样,一定要讨论好,不能讨论不好,上去就开始干。。。。。。前端和后端真是一个相互仇恨的组合,今天让小姐姐加上在注册密码的时候两次密码不一致这个用js可以实现校验的功能,小姐姐看我的眼神就不好了。。。。 逃。。。今天就先记录那么多吧

利用flask框架实现对用户的注册登录的更多相关文章

  1. 利用mvc模式,实现用户的注册

    实现功能:利用mvc模式,实现用户的登陆注册功能 1.程序的框架结构 2个包,bean,以及servlet 3个jsp页面,注册页面,注册成功页面,注册失败页面 mysql驱动 2.编程思想 通过js ...

  2. Node.js基于Express框架搭建一个简单的注册登录Web功能

    这个小应用使用到了node.js  bootstrap  express  以及数据库的操作 :使用mongoose对象模型来操作 mongodb 如果没了解过的可以先去基本了解一下相关概念~ 首先注 ...

  3. node.js+mysql用户的注册登录验证

    下面代码实现的功能是:用node.js连接mysql实现用户的注册和登录,这里主要实现的是后端的验证代码,前端显示部分没具体写出. 整个程序的流程是这样的: 1.首先建立数据库reji,数据表user ...

  4. 利用flask将opencv实时视频流输出到浏览器

    opencv通过webcam可以获取本地实时视频流,但是如果需要将视频流共享给其他机器调用,就可以将利用flask框架构建一个实时视频流服务器,然后其他机器可以通过向这个服务器发送请求来获取这台机器上 ...

  5. 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(五)——实现注册功能

    使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用 ...

  6. 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(四)——对 run.py 的调整

    使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用 ...

  7. 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用

    使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用 ...

  8. 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化

    使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用 ...

  9. 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(三)——使用Flask-Login库实现登录功能

    使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用 ...

随机推荐

  1. 你的旧版本 App 为何运行在 iPhone 12 上没有异常?

    背景 当我在 10月14日 iPhone 12 系列发布直播,看到 iPhone 12 系列的分辨率后,我注意到这些分辨率是全新的时,我立即在群里吐槽:又需要适配一波了.我只是以为宽高变化会导致字号变 ...

  2. post和get、PostMapping、GetMapping和RequestMapping

    PostMapping.GetMapping和RequestMapping PostMapping和GetMapping封装了method="",限制了method,更加规范化. ...

  3. MySQL中EXPLAIN结果的参数详解

    explain显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. 使用方法,在select语句前加上explain就可以了.如: mysql& ...

  4. spring boot实现超轻量级网关(反向代理、转发)

    在我们的rest服务中,需要暴露一个中间件的接口给用户,但是需要经过rest服务的认证,这是典型的网关使用场景.可以引入网关组件来搞定,但是引入zuul等中间件会增加系统复杂性,这里实现一个超轻量级的 ...

  5. 网络拓扑实例之VRRP负载分担(四)

    组网图形  VRRP负载分担简介 负载分担方式是指多台设备同时承担业务,因此负载分担方式需要两个或者两个以上的虚拟路由器,每个虚拟路由器都包括一个Master路由器和若干个Backup路由器,各虚拟路 ...

  6. webpack、node、npm关系

    webpack模块打包 webpack为了正常运行, 必须依赖node环境, node环境为了可以正常的执行很多代码,必须其中包含各种依赖的包 npm工具(node packages manager) ...

  7. Linux标准输入、标准输出、错误输出

    Linux中的输入文件.输出文件.错误输出 文件名称 文件描述符 标准输入 0 (默认是键盘) 标准输出 1 (默认是屏幕) 标准错误 2 (默认是屏幕) 输出重定向 Linux中&表示后台运 ...

  8. 理解Volatile关键字,其实看这一篇就够了,写的非常细致

    前言 volatile是Java虚拟机提供的轻量级的同步机制. volatile关键字作用是什么? 两个作用: 1.保证被volatile修饰的共享变量对所有线程总数可见的,也就是当一个线程修改了一个 ...

  9. 关于GoldWave为Vegas制作音频交叉淡化特效的教程分享

    在Vegas里对音频交叉淡化的处理,是通过将两段音频交叠.调整交叠部分的音量.选取交叉淡化类型这三步来实现的,许多步骤是在音频轨道拖动音量线来实现的,操作上不够灵敏精细.其实,单就音频的交叉淡化处理, ...

  10. 「CERC2017」Donut Drone

    题目链接 洛谷P4739 题目翻译: 你正在模拟无人机探索一个不稳定的环状行星的过程.技术上说,无人机正在穿过一个环形网格---一个在两维上都首尾环绕在一起的矩形网格.格子的行号从上到下依次编号为\( ...