Exemplo n.º 1
0
def movie_brief():
    username = request.args.get('username')
    moviename = request.args.get('moviename')
    if moviename:
        # 查询该用户是否观看影片
        with Database(database='recommend') as cursor:
            sql = "select * from user_movie where username='******'and moviename='%s'" % (
                username, moviename)
            cursor.execute(sql)
            like = cursor.fetchone()
            # 如果有点击量加1
            if like:
                sql = "update user_movie set record=record+1 where username='******' and moviename='%s';" % (
                    username, moviename)
                cursor.execute(sql)
            # 没有就将影片加入用户中
            else:
                sql = "INSERT into user_movie values('%s', '%s', 1);" % (
                    username, moviename)
                cursor.execute(sql)
        # 返回点击的影片
        with Database(database='recommend') as cursor:
            sql = "select * from movies where moviename='%s'" % moviename
            cursor.execute(sql)
            movie = cursor.fetchone()
        return render_template('brief.html', user=g.user, movie=movie)
    return render_template('brief.html', user=g.user, movie='')
Exemplo n.º 2
0
def before_request():
    # 登录页面清除session
    if request.path == url_for('login'):
        session.clear()
    else:
        # 获取session中的用户
        username = session.get('username', None)
        if username:
            with Database(database='recommend') as cursor:
                # 查询session中的用户保存到g对象中
                sql = "select * from users where username='******'" % username
                cursor.execute(sql)
                user = cursor.fetchone()
                user1 = Users(user[0], user[1])
                g.user = user1
                # 查找观看记录
                sql = "select * from user_movie where username='******'" % g.user.username
                cursor.execute(sql)
                is_new = cursor.fetchall()
                # 判断是否是新用户
                if is_new:
                    # 查询session中的用户的推荐影片保存到g对象中
                    sql = "select movies.moviename,brief,type,path,image from movies " \
                          "where  type=" \
                          "(select type from movies " \
                          "join user_movie on movies.moviename=user_movie.moviename " \
                          "where username='******' ORDER BY record desc LIMIT 1)limit 3;" \
                          % g.user.username
                    cursor.execute(sql)
                    movies = cursor.fetchall()
                    # 保存已经有观看记录的用户推荐影片
                    g.movies = movies
                else:
                    # 查找点击最多的3个影片
                    sql = "select movies.moviename,brief,type,path,image " \
                          "from movies join user_movie on movies.moviename=user_movie.moviename " \
                          "ORDER BY record desc limit 3;"
                    cursor.execute(sql)
                    movies = cursor.fetchall()
                    # 保存新用户展示的影片
                    g.movies = movies
        else:
            with Database(database='recommend') as cursor:
                # 查找点击最多的3个影片
                sql = "select movies.moviename,brief,type,path,image " \
                      "from movies join user_movie on movies.moviename=user_movie.moviename " \
                      "ORDER BY record desc limit 3;"
                cursor.execute(sql)
                movies = cursor.fetchall()
                # 保存未登录用户展示的影片
                g.customer_movies = movies
            # 未登录时不能访问的路径,并重定向到登录页面
            if request.path in vaild_path:
                return redirect(url_for('login'))
Exemplo n.º 3
0
def register():
    if request.method == 'POST':
        username = request.form.get('username')
        password = request.form.get('password')
        repassword = request.form.get('repassword')
        with Database(database='recommend') as cursor:
            sql = "select * from users where username='******'" % username
            cursor.execute(sql)
            is_exist = cursor.fetchone()
            # 判断用户是否存在
            if not is_exist:
                if password == repassword and username != '' and len(
                        password) >= 6:
                    # 插入用户数据
                    sql = "insert into users values ('%s', '%s')" % (username,
                                                                     password)
                    cursor.execute(sql)
                    return redirect('/register_succeed')
                else:
                    msg = '密码或账号不正确'
                    return render_template('register.html', msg=msg)
            else:
                msg = '用户已存在'
                return render_template('register.html', msg=msg)
    return render_template('register.html')
Exemplo n.º 4
0
def search():
    if request.method == 'POST':
        moviename = request.form.get('moviename')
        # 查找影片名或影片类型
        with Database('recommend') as cursor:
            sql = "select * from movies where moviename='%s' or type='%s'" % (
                moviename, moviename)
            cursor.execute(sql)
            movies = cursor.fetchall()
        if session:
            return render_template('search.html', user=g.user, movies=movies)
        else:
            return render_template('search.html', user='', movies=movies)
    if session:
        return render_template('search.html', user=g.user, movies=g.movies)
    return render_template('search.html', user='', movies='')
Exemplo n.º 5
0
def watch_history():
    page = request.args.get('page', default=1)
    page = int(page)
    with Database(database='recommend') as cursor:
        sql = "select movies.moviename,brief,type,path,image " \
              "from movies join user_movie on movies.moviename=user_movie.moviename " \
              "where username='******' limit %d,%d" % (g.user.username, 3 * (page - 1), 3 * (page - 1) + 3)
        cursor.execute(sql)
        movies = cursor.fetchall()
        # 获取总页数
        sql = "select count(*) from movies join user_movie on movies.moviename=user_movie.moviename where username='******'" % g.user.username
        cursor.execute(sql)
        movie_total_tuple = cursor.fetchone()
        movie_total = movie_total_tuple[0]
        last_page = math.ceil(movie_total / 3)
    return render_template('watch_history.html',
                           user=g.user,
                           page=page,
                           last_page=last_page,
                           movies=movies)
Exemplo n.º 6
0
def movie_exhibition():
    movie_type = request.args.get('type')
    page = request.args.get('page', default=1)
    page = int(page)
    with Database(database='recommend') as cursor:
        # 判断展示的类型
        if movie_type == 'None' or movie_type == None:
            sql = "select * from movies limit %d,%d" % (3 * (page - 1), 3 *
                                                        (page - 1) + 3)
        else:
            sql = "select * from movies where type='%s' limit %d,%d" % (
                movie_type, (page - 1) * 3, (page - 1) * 3 + 3)
        cursor.execute(sql)
        movies = cursor.fetchall()
        # 获取总页数
        if movie_type == 'None' or movie_type == None:
            sql = "select count(*) from movies"
        else:
            sql = "select count(*) from movies where type='%s'" % movie_type
        cursor.execute(sql)
        movie_total_tuple = cursor.fetchone()
        movie_total = movie_total_tuple[0]
        last_page = math.ceil(movie_total / 3)
    if session:
        return render_template('movie_exhibition.html',
                               user=g.user,
                               movies=movies,
                               page=page,
                               movie_type=movie_type,
                               last_page=last_page)
    return render_template('movie_exhibition.html',
                           user='',
                           movies=movies,
                           page=page,
                           movie_type=movie_type,
                           last_page=last_page)
Exemplo n.º 7
0
def login():
    if request.method == 'POST':
        username = request.form.get('username')
        password = request.form.get('password')
        with Database(database='recommend') as cursor:
            # 查询数据
            sql = "select * from users where username='******'" % username
            cursor.execute(sql)
            user = cursor.fetchone()
            if user:
                user1 = Users(user[0], user[1])
                # 判断用户与密码是否一致
                if username == user1.username and password == user1.password:
                    # 一致保存用户进session并查询推荐影片
                    session['username'] = username
                    session['password'] = password
                    return redirect(url_for('index'))
                else:
                    return render_template('login.html',
                                           msg='账号或密码不正确',
                                           user='')
            else:
                return render_template('login.html', msg='账号或密码不正确', user='')
    return render_template('login.html', user='')
Exemplo n.º 8
0
from util import Database
from pdf2image import convert_from_bytes
from bson import Binary
from PIL import Image

from pdf2image.exceptions import (PDFInfoNotInstalledError, PDFPageCountError,
                                  PDFSyntaxError)

app = Flask(__name__, static_url_path='/static')
app.secret_key = os.urandom(32)
socketio = SocketIO(app)

app.config["MONGO_DBNAME"] = os.environ["databaseName"]
app.config["MONGO_URI"] = os.environ["mongoURI"]

dbtools = Database.DBTools(app)

lineStorage = {  # Setup for temporary line storage may change depending on support for multiple pages
    # documentID : {
    #     'connectedUsers' : {request.sid},
    #     'write' : {request.sid},
    #     'lines' : [
    #         [page, x0, y0, x1, y1, lineWidth, 'rgba(r,g,b,a)' or 'e', highlighter?]
    #     ]
    # }
}

connectedUsers = {
    # request.sid : documentID
}
Exemplo n.º 9
0
async def main():
    async with Database('test', owner=True) as conn:
        await demo(conn)
Exemplo n.º 10
0
async def db_connect(app, loop):
    app.db = Database('restaurant', owner=False)
    app.pool = await app.db.connect()
    await model.create_table_if_missing(app.pool)
    await app.db.add_listener('chan_patron', model.db_event)
Exemplo n.º 11
0
from flask_restful import Api, Resource, reqparse
from flask_httpauth import HTTPBasicAuth
from flask_compress import Compress
from util import Database
from werkzeug.utils import secure_filename
from requests.auth import HTTPDigestAuth
import requests
import hashlib
from PIL import Image
import io

app = Flask(__name__, static_url_path="")
api = Api(app)
Compress(app)
auth = HTTPBasicAuth()
db = Database()


@auth.get_password
def get_password(username):
    return db.getPassword(username)


@auth.error_handler
def unauthorized():
    # return 403 instead of 401 to prevent default browser dialog
    return make_response(jsonify({'message': 'Unauthorized access'}), 403)


class RecipeListAPI(Resource):
    decorators = [auth.login_required]