route error在mysql中什么意思

route error在mysql中什么意思,第1张

mysql_error() 函数返回上一个 MySQL *** 作产生的文本错误信息。[1]

本函数返回上一个 MySQL 函数的错误文本,如果没有出错则返回 ''(空字符串)。[1]

语法

mysql_error(connection)[1]

用flask+mysql实现用户的注册和登录:

一个简单的用户注册和登录的页面,就两个部分。

涉及到数据库,存储用户数据(注册),读出用户数据(登录验证)。搞清楚如何用python连接和 *** 作数据库即可,还有了解sql数据库语句,sqlite和mysql差不多的,看几眼多试几下就了解了。

网站程序,前端如何发送表单,后端获取用户发送的请求,和数据库中数据验证是否能够登录,然后登录后如何保存用户登录信息,就是使用的cookie,不过在flask中是session(其实session也是cookie,flask把它封装了下,成了加密的cookie)。

举例如下:

from functools import wrapsdef authorize(fn):

    @wraps(fn)

    def wrapper(*args, **kwds):

        user = session.get('logged_in', None)

        if user:

            return fn(user=user)

        else:

            return redirect(url_for('signin',next=request.path))

 

    return wrapper@app.route('/home')@authorizedef home(**kwds):

    username = kwds['user']

    return render_template('index.html' ,username=username)#加密存储密码import osimport hashlibdef encrypt_password(password, salt=None):

    if not salt:

        salt = os.urandom(16).encode('hex') # length 32

    result = password

    for i in range(3):

        result = hashlib.sha256(password + salt).hexdigest()[::2] #length 32

    return result, salt#简单的错误处理class loginError(Exception):

    def __init__(self, value):

        self.value = value

    def __str__(self):

        return repr(self.value)# 注册登录(下面的代码没有实际运行过)# 连接数据库我是使用的是 mysql.connector # http://dev.mysql.com/downloads/connector/python/# 写法和常用的MySQL-python稍有所不同# 下面没有连接数据库的代码@app.route('/register/', methods=['GET','POST'])def request():

    if request.method == 'GET':

        return render_template("register.html")

    if request.method == 'POST':

        # 这里最好需要验证用户输入,我就不写了

        u = request.form['username']

        p,s = encrypt_password(request.form['password'])

        g.db.cursor.execute('INSERT INTO users (name,password,salt) VALUES (%s,%s,%s)',(u,p,s,)

        g.db.commit()

        return redirect(url_for('signin'))@app.route('/signin/', methods=['GET','POST'])def signin():

    if request.method == 'GET':

        referrer = request.args.get('next','/')

        return render_template("login.html",next=referrer)

    if request.method == 'POST':

        u = request.form['username']

        p = request.form['password']

        n = request.form['next']

        try:

            g.db.cursor.execute('SELECT `name` FROM users WHERE name = %s',(u,))

            if not g.db.cursor.fetchone():

                raise loginError(u'错误的用户名或者密码!')

            g.db.cursor.execute('SELECT `salt`,`password` FROM users WHERE name = %s',(u,))

            salt,password = g.db.cursor.fetchone()

            if encrypt_password(p,salt)[0] == password:

                session['logged_in'] = u

                return redirect(next)

            else:

                raise loginError(u'错误的用户名或者密码!')

        except loginError as e:

            return render_template('login.html', next=next,error=e.value)@app.route('/signout/', methods=['POST'])def signout():

    session.pop('logged_in', None)

    return redirect(url_for('home'))

在网上搜索jdbc代码。很多的。

1.引入mysql连接驱动jar包。

2.建立连接;

3.注册驱动;

4.提交连接(url,username,password)

5.执行增删改等;

6.注意事务处理;

7.使用完关闭连接。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7340806.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存