예제 #1
0
def test():
    connection = pymysql.connect(host='localhost',
                                 user='******',
                                 password='******',
                                 db='web8',
                                 charset='utf8mb4',
                                 cursorclass=pymysql.cursors.DictCursor)

    # with connection.cursor() as cursor:
    # cursor.execute('DROP DATABASE `web8`')
    # cursor.execute('CREATE DATABASE `web8` CHARACTER SET utf8mb4')
    # cursor.execute('USE `web8`')

    # cursor.execute(User.sql_create)
    # cursor.execute(Session.sql_create)
    # cursor.execute(Todo.sql_create)
    # cursor.execute(Comment.insert())
    # connection.commit()
    # connection.close()

    form = dict(
        username='******',
        password='******',
    )
    User.register_user(form)
    u, result = User.login_user(form)
    assert u is not None, result
    form = dict(
        username='******',
        password='******',
    )
    User.register_user(form)

    session_id = random_string()
    form = dict(
        session_id=session_id,
        user_id=u.id,
    )
    Session.new(form)
    s: Session = Session.one(session_id=session_id)
    assert s.session_id == session_id

    form = dict(
        title='test todo',
        user_id=u.id,
    )
    t = Todo.add(form, u.id)
    assert t.title == 'test todo'

    form = dict(content='123', user_id=u.id, weibo_id=1)
    c = Comment.new(form)
    assert c.content == '123'

    form = dict(
        content='123',
        user_id=u.id,
    )
    w = Weibo.new(form)
    assert w.user_id == 1
예제 #2
0
def current_user():
    if 'session_id' in request.cookies:
        session_id = request.cookies.get('session_id', 'guest')
        session = Session.one(session_id=session_id)
        if session is not None:
            user_id = session.user_id
            user = User.one(id=user_id)
            return user
        else:
            return User.guest()
    else:
        return User.guest()
예제 #3
0
def current_user():
    if 'session_id' in request.cookies:
        session_id = request.cookies['session_id']
        s = Session.one(session_id=session_id)
        if s is None or s.expired():
            return User.guest()
        else:
            user_id = s.user_id
            u = User.one_for_id(id=user_id)
            return u
    else:
        return User.guest()
예제 #4
0
def current_user(request):
    # 返回当前登录用户, 若未登录则返回游客用户
    if 'session_id' in request.cookies:
        session_id = request.cookies['session_id']
        s = Session.one(session_id=session_id)
        if s is None or s.expired():
            return User.guest()
        else:
            user_id = s.user_id
            u = User.one(id=user_id)
            return u
    else:
        return User.guest()
예제 #5
0
def current_user(request):
    # log('<F_current_user s {}'.format(request.cookie))
    if 'session_id' in request.cookie:
        session_id = request.cookie['session_id']
        # log('<F_current_user s {}'.format(session_id))
        s = Session.one(session_id=session_id)
        # log('<F_current_user s {}'.format(s))
        if s is None or s.expired():
            return User.guest()
        else:
            user_id = s.user_id
            u = User.one(id=user_id)
            return u
    else:
        return User.guest()
예제 #6
0
def current_user(request):
    log('current_user', request.cookies)
    if 'session_id' in request.cookies:
        log('current_user session_id 存在')
        session_id = request.cookies['session_id']
        s = Session.one(session_id=session_id)
        if s is None or s.expired():
            return User.guest()
        else:
            user_id = s.user_id
            u = User.one(id=user_id)
            if u is None:
                return User.guest()
            else:
                return u
    else:
        return User.guest()
예제 #7
0
def test():
    connection = pymysql.connect(
        host='localhost',
        user='******',
        password=database_password,
        charset='utf8mb4',
        cursorclass=pymysql.cursors.DictCursor
    )

    with connection.cursor() as cursor:
        cursor.execute('DROP DATABASE `web`')
        cursor.execute('CREATE DATABASE `web` CHARACTER SET utf8mb4')
        cursor.execute('USE `web`')

        cursor.execute(User.sql_create)
        cursor.execute(Session.sql_create)
        cursor.execute(Todo.sql_create)
        cursor.execute(Comment.sql_create)
        cursor.execute(Weibo.sql_create)
    connection.commit()
    connection.close()

    form = dict(
        username='******',
        password='******',
    )
    User.register_user(form)
    u, result = User.login_user(form)
    assert u is not None, result

    session_id = random_string()
    form = dict(
        session_id=session_id,
        user_id=u.id,
    )
    Session.new(form)
    s: Session = Session.one(session_id=session_id)
    assert s.session_id == session_id

    form = dict(
        title='test todo',
        user_id=u.id,
    )
    t = Todo.add(form, u.id)
    assert t.title == 'test todo'
예제 #8
0
def reset_all_tables():
    connection = pymysql_connection()
    with connection.cursor() as cursor:
        cursor.execute('DROP DATABASE IF EXISTS `myserver`')
        cursor.execute('CREATE DATABASE `myserver` CHARACTER SET utf8mb4')
        cursor.execute('USE `myserver`')

        cursor.execute(User.sql_create)
        cursor.execute(Session.sql_create)
        cursor.execute(Weibo.sql_create)
        cursor.execute(Comment.sql_create)
    connection.commit()
    connection.close()

    form = dict(
        username='******',
        password='******',
    )
    User.register_user(form)
    u, result = User.login_user(form)
    assert u is not None, result

    session_id = random_string()
    form = dict(
        session_id=session_id,
        user_id=u.id,
    )
    Session.new(form)
    s: Session = Session.one(session_id=session_id)
    assert s.session_id == session_id

    form = dict(
        content='hello',
        user_id=u.id,
    )
    w = Weibo.new(form)
    assert w.content == 'hello'

    form = dict(
        content='hi',
        user_id=u.id,
        weibo_id=w.id,
    )
    c = Comment.new(form)
    assert c.content == 'hi'
예제 #9
0
def current_user(request):
    if 'session_id' in request.cookies:
        session_id = request.cookies['session_id']
        s = Session.one(session_id=session_id)
        if s is None or s.expired():
            log('当前用户:游客')
            return User.guest()
        else:
            user_id = s.user_id
            u = User.one(id=user_id)
            if u is None:
                log('当前用户:游客')
                return User.guest()
            else:
                log('当前用户:<{}>'.format(u.username))
                return u
    else:
        log('当前用户:游客')
        return User.guest()
예제 #10
0
def current_user():
    """
    获取当前用户的ID信息
    :return: 用户对应的User类
    """
    # 检查cookie里面有没有session_id, 没有则返回游客类
    if 'session_id' in request.cookies:
        # 已知cookie里有session_id, 调取session_id
        session_id = request.cookies['session_id']

        # 在数据库里找到对应的session类
        session = Session.one(session_id=session_id)

        # 找的了Session类则通过里面记录的user id 返回对应的User, 否则反之游客
        if session is not None:
            user_id = session.user_id
            user = User.one(id=user_id)
            return user
        else:
            return User.guest()
    else:
        return User.guest()