Exemplo n.º 1
0
def UploadFileView(request):
    '''
    上传文件
    :param request: 客户端请求头
    :return: html页面
    '''
    user = User.objects.get(id=request.user.id)
    if user.is_upload == 0:
        return redirect('/')  # 检测用户上传权限
    form = UPfileForm()
    page = request.GET.get('page', 1)
    if request.method == 'POST':
        file = request.FILES['file']
        name, filename = blog.randNmae() + '_' + file.name, file.name
        Upload_file, user = settings.MEDIA_ROOT_FILE + \
            name, User.objects.get(id=request.user.id)
        with open(Upload_file, 'wb') as f:
            for file_bytes in file.chunks():
                f.write(file_bytes)
        str = 'stat' if platform.system(
        ) != 'Windows' else ''  # UNIX和类UNIX(例如linux)系统会少四个字符
        upfile = UPfile(name=filename,
                        file='/' + str + Upload_file.lstrip(settings.BASE_DIR),
                        user=user,
                        time=datetime.datetime.now(tz=pytz.timezone('UTC')))
        upfile.save()
        tips = '上传文件成功'
    upfile = UPfile.objects.filter(user=user).order_by('-time').all()
    post_num = len(upfile)
    paginator, pageInfo = paginatorPage(
        upfile, settings.HAYSTACK_SEARCH_RESULTS_PER_PAGE)
    return render(request, 'UploadFile.html', locals(),
                  RequestContext(request))
Exemplo n.º 2
0
def collection_managementView(request):
    '''
    收藏文章管理
    :param request: 客户端请求头
    :return: hrml页面
    '''
    title = '收藏的文章'
    page = request.GET.get('page', 1)
    root_user = User.objects.get(id=request.user.id)
    collection_list = Collection.objects.filter(user=root_user).all()
    paginator, pageInfo = paginatorPage(
        collection_list, settings.HAYSTACK_SEARCH_RESULTS_PER_PAGE, page)
    return render(request, 'collection_manag.html', locals(),
                  RequestContext(request))
Exemplo n.º 3
0
def attention_managementView(request):
    '''
    关注博主管理
    :param request: 客户端请求头
    :return: hrml页面
    '''
    title = '关注的博主'
    page = request.GET.get('page', 1)
    root_user = User.objects.get(id=request.user.id)
    attention_list = Attention.objects.filter(user=root_user).all()
    for i in attention_list:
        i.attention_id = User.objects.filter(id=i.attention_id).get()
    paginator, pageInfo = paginatorPage(
        attention_list, settings.HAYSTACK_SEARCH_RESULTS_PER_PAGE, page)
    return render(request, 'attention_manag.html', locals(),
                  RequestContext(request))
Exemplo n.º 4
0
def indexView(request):
    '''
    首页
    :param request: 客户端请求头
    :return: html页面
    '''
    page = request.GET.get('page', 1)
    post_list = Post.objects.all().order_by('-time')  # 博客文章列表
    post_read = Post.objects.all().order_by('-readnumber')[:5]  # 博客文章列表
    archive_list = Post.objects.distinct_date()
    tags_list = Tags.objects.all()
    for post in post_read:
        if len(post.title) > 12:
            post.title = post.title[:12] + '...'
    paginator, pageInfo = paginatorPage(
        post_list, settings.HAYSTACK_SEARCH_RESULTS_PER_PAGE, page)  # 文章分页
    return render(request, 'index.html', locals(), RequestContext(request))
Exemplo n.º 5
0
def homeView(request):
    '''
    用户中心
    :param request: 客户端请求头
    :return: html页面
    '''
    user = User.objects.get(id=request.user.id)
    page = request.GET.get('page', 1)
    profile = Profile.objects.filter(user=user).first()
    if not profile:
        profile = Profile(user=user, self_reprot='这个人很懒,什么也没有写!')
        profile.save()
    post_list = Post.objects.filter(user=user).order_by('-time').all()
    attention_list = Attention.objects.filter(user=user).all()
    num_attentiom = len(attention_list)
    fan_list = Attention.objects.filter(attention_id=user.id).all()
    num_fan = len(fan_list)
    paginator, pageInfo = paginatorPage(
        post_list, settings.HAYSTACK_SEARCH_RESULTS_PER_PAGE, page)
    return render(request, 'home.html', locals(), RequestContext(request))
Exemplo n.º 6
0
def guestbookView(request):
    if request.method == 'POST':
        username = request.POST.get("username")
        title = request.POST.get("title")
        content = request.POST.get("content")
        if re.match(r'<script>.*?</script>', content):
            messages.error(request, '留言失败,检测提交js脚本')
            return redirect('/guestbook/')
        publish = timezone.now()
        message = models.Message(title=title,
                                 content=content,
                                 username=username,
                                 publish=publish)
        message.save()
        messages.success(request, '留言成功')
        return redirect('/guestbook/')
    page = request.GET.get('page', 1)
    messageslist = models.Message.objects.all().order_by('-publish')
    paginator, pageInfo = paginatorPage(
        messageslist, settings.HAYSTACK_SEARCH_RESULTS_PER_PAGE, page)
    return render(request, 'guestbook.html', locals(), RequestContext(request))
Exemplo n.º 7
0
def userView(request):
    '''
    用户信息
    :param request: 客户端请求头
    :param username: 用户的id
    :return: html页面
    '''
    page = request.GET.get('page', 1)
    uid = request.GET.get('uid', None)
    if not uid:
        from django.template import loader
        info = '404页面没有找到'
        return HttpResponse(loader.get_template("error.html").render(locals()),
                            status=404)
    else:
        user_info = User.objects.filter(id=uid).first()
        profile = Profile.objects.get(user=user_info)
        post_list = Post.objects.filter(user=user_info).order_by('-time').all()
        dynamic = Dynamic.objects.filter(user=user_info).first()
        if not dynamic:
            dynamic = Dynamic(user=user_info)
            dynamic.save()
        num_attention = dynamic.dynamic_attention
        attention_list = Attention.objects.filter(
            attention_id=user_info.id).all()
        if request.user.id:
            is_login = True
            for i in attention_list:
                if i.user == request.user and i.is_attention == 1:
                    attention = 1
        else:
            is_login, attention = False, 0
        num_fan = len(attention_list)
        post_num = len(post_list)
        paginator, pageInfo = paginatorPage(
            post_list, settings.HAYSTACK_SEARCH_RESULTS_PER_PAGE)
    return render(request, 'user.html', locals(), RequestContext(request))
Exemplo n.º 8
0
def postView(request, id):
    '''
    博客文章
    :param request: 客户端请求头
    :param id: 博客文章id
    :return: html页面
    '''
    post = Post.objects.get(id=id)
    form, page, user = CommentForm(), request.GET.get('page', 1), None
    # 提交评论
    if request.method == 'POST':
        user = User.objects.get(id=request.user.id)
        content = request.POST.get('content', '')
        if re.match(r'<script>.*?</script>', content) or content == '':
            messages.error(request, '评论失败')
        else:
            comment = Comment(content=content,
                              post=post,
                              user=user,
                              time=timezone.now())
            comment.save()
            if not post.user == get_user(request):
                notify.send(get_notifications(),
                            recipient=user,
                            verb=get_name(user) + ' 评论了你的文章<br/>',
                            level='info')
            messages.success(request, '评论成功')
        return redirect("/post/{}".format(id))
    # 动态列表信息
    dynamic = Dynamic.objects.filter(post=id).first()
    userdynamic = UserDynamic.objects.filter(user=post.user).first()
    like_list = Like.objects.filter(post=post)
    collection_list = Collection.objects.filter(post=post)
    attention_list = Attention.objects.filter(attention_id=post.user.id)
    if not userdynamic:  # 如果用户动态列表不存在就创建
        userdynamic = UserDynamic(user=post.user,
                                  dynamic_search=0,
                                  dynamic_like=0,
                                  dynamic_attention=0)
        userdynamic.save()
    if not dynamic:  # 如果博客动态列表不存在就创建
        dynamic = Dynamic(
            post=post,
            dynamic_like=0,
            dynamic_collection=0,
        )
        dynamic.save()
    num_attention, user_info = userdynamic.dynamic_attention, post.user
    if request.user.id:
        user = get_user(request)
        if post.user.id != request.user.id:
            post.readnumber = int(post.readnumber) + 1
            post.save()
        for i in like_list:
            if i.user.id == user.id and i.is_like == 1:
                like = 1
        for j in collection_list:
            if j.user.id == user.id and j.is_collection == 1:
                collection = 1
        for k in attention_list:
            if k.user.id == user.id and k.is_attention == 1:
                attention = 1
    # 评论分页
    comment = Comment.objects.filter(post=post).order_by('-time').all()
    for c in comment:
        c.reply = Reply.objects.filter(comment=c.id).all().order_by("time")

    paginator, pageInfo = paginatorPage(
        comment, settings.HAYSTACK_SEARCH_RESULTS_PER_PAGE, page)
    return render(request, 'post.html', locals(), RequestContext(request))