实战项目—使用Python,SqlServer,HTML实现简单登录模块

这篇具有很好参考价值的文章主要介绍了实战项目—使用Python,SqlServer,HTML实现简单登录模块。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、项目介绍

        近期应老师的要求,要使用一门编程语言连接数据库制作一个简单的登录模块,对于没有做过项目的小白来说,根本无从下手,甚至不能理解怎么跨平台操作。经过近一周的查资料,改代码,磕磕绊绊总算是实现了。

        我是用的语言是Python,后端平台在pycharm操作,前段使用HTML,平台在VScode,数据库使用SqlServer。

二、实现效果:

1.在pycharm里面运行后端代码,点击下方运行框内的链接。实战项目—使用Python,SqlServer,HTML实现简单登录模块

 2.跳转到登录页面。

实战项目—使用Python,SqlServer,HTML实现简单登录模块

 3.输入数据库中包含的用户名和密码,点击登陆,可以进入登陆成功的界面(如下图)。如果输入错误的用户名或密码,会进入登陆失败界面(此处不放图)。

实战项目—使用Python,SqlServer,HTML实现简单登录模块

4.点击退出登录,会返回登录界面。点击”立即注册“,会进入注册界面。

实战项目—使用Python,SqlServer,HTML实现简单登录模块

5.像我们平时在网页注册一样输入内容之后,点击注册按钮,我们的数据库中就会添加我们刚刚输入进去的用户名和密码这两个字段。此时界面不变化(其实本来下面除了“注册”按钮之外,还应该有一个“立即登陆”按钮可以跳转到登录界面的,并且点击“注册”按钮之后,应该要跳转到“注册成功”界面。但是能力受限,没能实现这个功能。不过这部分的代码我没有删减,如果愿意帮我解决这个问题,万分感谢),但已经注册成功了。这时我们回到登陆界面再输入刚刚注册的内容,就可以登陆了。

三、代码

        由于自己都理解的磕磕绊绊,实现过程中也是一行一行测试出来的,并且还有一定的瑕疵,代码就不做解释了。

        需要注意的是:

        1.HTML文件要放在pycharm中后端代码的同一根目录下一个名为“templates”的目录下。

        2.所有代码文件的命名要严格按照我给的名字命名。

        3.部分库需要安装,在pycharm终端使用“pip install + 库名”安装即可,如果还是不行,可以在“文件——设置——项目:login——Python解释器”中搜索安装。

我的目录如下:(有的友友把所有文件都放在templates目录下,结果报错,虽然不清楚是什么原因,但是改为和我相同的目录安排就正确了)

实战项目—使用Python,SqlServer,HTML实现简单登录模块

 

1.Python实现后端代码(app.py)

from flask import Flask, render_template, request, redirect, session
import pyodbc
app = Flask(__name__)
app.secret_key = 'my_secret_key'
def connect_to_db():
    # 连接数据库
    server = 'localhost'  # 服务器名称或IP地址
    database = 'login_in'  # 数据库名称
    username = 'username'  # 用户名
    password = 'password'  # 密码
    cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=USER-20220813EQ\SQLEXPRESS;DATABASE=login_in;UID=login;PWD=liang030922')
    return cnxn
@app.route('/')
def index():
    return redirect('/login')
@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password']
        cnxn = connect_to_db()
        cursor = cnxn.cursor()
        query = "SELECT * FROM users WHERE username = '{}' AND password = '{}'".format(username, password)
        cursor.execute(query)
        user = cursor.fetchone()
        if user:
            session['username'] = user[0]       #这里由1修改为0,显示username。如果是1,则为username=password,错误
            return redirect('/login_success')
        else:
            return '登录失败,请检查用户名和密码是否正确!'
    else:
        return render_template('login.html')
@app.route('/login_success')
def login_success():
    if 'username' in session:
        username = session['username']
        return render_template('login_success.html', username=username)
    else:
        return redirect('/login')
@app.route('/register', methods=['GET', 'POST'])
def register():
    render_template('register.html')
    if request.method == 'POST':
        username = request.form.get('username')
        password = request.form.get('password')
        #username = request.form['username']
        #password = request.form['password']
        password_confirm = request.form.get('password_confirm')
        if password != password_confirm:
            return '两次输入的密码不一致,请重新输入!'          #yes
        else:       #elif password_confirm==password:
            cnxn = connect_to_db()
            cursor = cnxn.cursor()
            query = "INSERT INTO users (username, password) VALUES ('{}', '{}')".format(username, password)     #向数据库中插入新数据,也就是注册过程
            cursor.execute(query)
            cnxn.commit()
            return redirect('/register_success')
    else:
        return render_template('register.html')
@app.route('/register_success')
#########################################################################
def register_success():
    return render_template('register.html')     #这里由register_success.html改为register.html就可以跳转到注册页面,可以完成注册操作,对应SqlServer的表中的内容会增加一行,但是这个界面的登陆按钮无效
@app.route('/logout')
def logout():
    session.pop('username', None)
    return redirect('/login')
if __name__ == '__main__':
    app.run(debug=True)

2.HTML实现前端页面

(1)login.html(登录界面)

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>登录页面</title>
</head>
<body>
    <form action="login" method="post">
        <label for="username">用户名:</label>
        <input type="text" id="username" name="username"><br><br>
        <label for="password">密码:</label>
        <input type="password" id="password" name="password"><br><br>
        <input type="submit" value="登录">
    </form>
    <form action="/register" method="POST">
        <p>还没有账号?</p>
        <!-- <button type="submit">立即注册</button> -->
        <button href="/register.html">立即注册</button>
    </form>

</body>
</html>

(2)login_success.html(登陆成功界面)

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>登录成功</title>
</head>
<body>
    <h1>欢迎您,{{username}}!</h1>
    <p>您已经成功登录,可以进行以下操作:</p>
    <ul>
        <li>查看个人信息</li>
        <li>修改密码</li>
        <li>查看订单记录</li>
        <li><a href="logout">退出登录</a></li>
    </ul>
</body>
</html>

(3)register.html(注册界面)

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>注册页面</title>
</head>
<body>
    <form action="register" method="post">
        <label for="username">用户名:</label>
        <input type="text" id="username" name="username"><br><br>
        <label for="password">密码:</label>
        <input type="password" id="password" name="password"><br><br>
        <label for="password_confirm">确认密码:</label>
        <input type="password" id="password_confirm" name="password_confirm"><br><br>
        <input type="submit" value="注册">
    </form>
    <!-- <p>已经有账号了?<button href="/login.html">立即登录</button></p> -->
</body>
</html>

(4)register_success.html(注册成功界面)

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>注册成功</title>
</head>
<body>
    <h1>恭喜您,注册成功!</h1>
    <p>请登录您的账号:</p>
    <form action="login" method="post">
        <label for="username">用户名:</label>
        <input type="text" id="username" name="username"><br><br>
        <label for="password">密码:</label>
        <input type="password" id="password" name="password"><br><br>
        <input type="submit" value="登录">
    </form>
</body>
</html>

3.SqlServer实现数据库内容管理

        在这一步,要做一些准备工作。

        1.打开SqlServer,连接时身份验证选择“SQL Server身份验证”,登录名为“login”,登录密码自己设置,对应的其他代码文件里面的密码也要改。

        2.创建一个名为login_in的数据库。

        3.写入代码。注意,这里的username要设为主键。设置主键的方法:在左侧数据库——login_in——表——dbo.users——右击设计——设置主键。

create table users
(
	username varchar(20),	--用户名
	password varchar(20),	--密码
)

        可以往里面插入一些数据,就在SqlServer里面使用insert语句就可以,这些数据插入进去之后理论上是可以用于登录的。部分在测试过程中可能用到的查询语句我也附上:

--select * from users
--drop table Users
--delete from users where username='None'

        以上就是我解决这个项目用到的所有内容,希望对你有所帮助。文章来源地址https://www.toymoban.com/news/detail-484427.html

到了这里,关于实战项目—使用Python,SqlServer,HTML实现简单登录模块的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ROS 2机器人编程实战:基于现代C++和Python 3实现简单机器人项目

    💂 个人网站:【海拥】【摸鱼游戏】【神级源码资源网】 🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】 💅 想寻找共同学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 ROS 2是机器人开发领域中广泛使用的一个框架,ROS 2提供了很多功能强大的工具和

    2024年02月02日
    浏览(58)
  • 利用Django搭建python web项目(简单登录)

    目前市面上web项目大多数是由java语言开发(结合spring框架),但这并不意味着只有java语言能够开发web项目,python语言、go语言同样可以做到。本文将利用Django框架(由python语言开发的web框架)来搭建一个简单的web项目,并实现简单登录功能。 2.1.1 Django框架优点 Django遵循MVC(

    2024年01月23日
    浏览(39)
  • Python简单实现登录功能

    代码如下 代码讲解 1. 意思:导入时间库 2. 意思:自定义用户名 3. 意思:自定义密码 4. 意思:用户输入次数,初始为0 5. 意思:Python的while循环 6-7. 意思:记录用户输入的用户名和密码 8-15. 意思:判断用户输入的用户名和密码是否正确,如果不正确打印密码或用户名错误,然后a加1如果输入

    2024年02月11日
    浏览(47)
  • 【项目实战】登录与注册业务的实现(前端+后端+数据库)

             本示例基于Vue.js和mint UI实现。 目录 一、数据库的创建 二、后端接口与数据库的连接 三、前端代码实现 1.注册页相关代码 2.注册页效果 3.登录页相关代码 4.登录页效果 四、注册登录演示 五、项目文件结构         此处以 Navicat 软件进行创建,新建数据库r

    2023年04月08日
    浏览(62)
  • redis实战-项目集成git及redis实现短信验证码登录

    目录     IDEA集成git 传统session存在的问题  redis方案 业务流程 选用的数据结构 整体访问流程 发送短信验证码  获取校验验证码 配置登录拦截器 拦截器注册配置类 拦截器 用户状态刷新问题 刷新问题解决方案   远程仓库采用码云,创建好仓库,复制仓库的url    在idea中点

    2024年02月11日
    浏览(44)
  • 简单的用Python获取一下视频弹幕,新手练手实战项目,非常简单!

    昨天看到个视频,弹幕挺有意思的,于是想着用Python给他全部扒下来。 代码非常简单,接下来我们看看 具体操作。 软件 Python 3.8 Pycharm 模块使用 import requests 数据请求 import jieba 分词 import wordcloud 词云 import parsel 数据解析 import re 正则 win + R 输入cmd 输入安装命令 pip install 模块

    2024年02月14日
    浏览(49)
  • 【Spring实战项目】SpringBoot3整合WebSocket+拦截器实现登录验证!从原理到实战

    🎉🎉 欢迎光临,终于等到你啦 🎉🎉 🏅我是 苏泽 ,一位对技术充满热情的探索者和分享者。🚀🚀 🌟持续更新的专栏 《Spring 狂野之旅:从入门到入魔》 🚀 本专栏带你从Spring入门到入魔   这是苏泽的个人主页可以看到我其他的内容哦👇👇 努力的苏泽 http://suzee.blog.

    2024年04月17日
    浏览(58)
  • 《Python多人游戏项目实战》第一节 简单的方块移动

    目录 1.1 设置游戏窗口 1.2 绘制一个方块 1.3 编写服务端代码 1.4 完善客户端代码 1.5 完整代码下载地址 在本节,我们将通过一个简单的方块移动程序进入多人联机游戏的大门。每个玩家打开游戏窗口后都可以控制一个方块,当某个玩家移动方块后,其余玩家的窗口上会自动更

    2023年04月19日
    浏览(36)
  • HTML写一个简单的登录注册界面

    希望对你们有所帮助,再此感谢各位读者的支持,再次感谢!!! 

    2024年02月12日
    浏览(42)
  • 详细地讲解使用MyEclipse创建一个简单的html与servlet交互的JavaWeb项目

    如图:在用户名和密码输入内容后,点击登录跳转到下一个页面 这个图片里面的验证码、下拉框什么的可以忽略,我们只做用户名和密码,因为不涉及连接到数据库,我们的密码是随便输入的。 下面我们来开始创建项目 打开MyEclipse,点击左上角的File,选择new,再选择Web P

    2024年02月06日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包