예제 #1
0
def blog_update(request, id=""):
    id = id 
    global blog,form,tag,paginator
    if request.method == 'POST':
        form = BlogForm(request.POST)
        tag = TagaddForm(request.POST)
        if form.is_valid() and tag.is_valid():
            cd = form.cleaned_data
            cdtag = tag.cleaned_data
            tagname = cdtag['tag_name']
            tagnamelist = tagname.split()
            for taglist in tagnamelist:
                Tag.objects.get_or_create(tag_name=taglist.strip())
            title = cd['caption']
            content = cd['content']
            blog = Blog.objects.get(id=id)
            if blog:
                blog.caption = title
                blog.content = content
                blog.save()
                for taglist in tagnamelist:
                    blog.tags.add(Tag.objects.get(tag_name=taglist.strip()))
                    blog.save()
                tags = blog.tags.all()
                for tagname in tags:
                    tagname = unicode(str(tagname), "utf-8")
                    if tagname not in tagnamelist:
                        notag = blog.tags.get(tag_name=tagname)
                        blog.tags.remove(notag)
            else:
                blog = Blog(caption=blog.caption, content=blog.content)
                blog.save()
           # return HttpResponseRedirect('/sblog/blog/%s'% id)
	    blogs = Blog.objects.all()
    	    paginator = Paginator(blogs, 4)
            page = request.GET.get('page')
            try:
                contacts = paginator.page(page)
            except PageNotAnInteger:
                contacts = paginator.page(1)


            except (EmptyPage,InvalidPage):
                contacts = paginator.page(paginator.num_pages)
	    return render_to_response('admin_bloglist.html',{"content":content})
    else:
        try:
            blog = Blog.objects.get(id=id)
        except Exception:
            raise Http404
        form = BlogForm(initial={'caption': blog.caption, 'content': blog.content}, auto_id=False)
        tags = blog.tags.all()
        if tags:
            taginit = ''
            for x in tags:
                taginit += str(x) + ' '
            tag = TagaddForm(initial={'tag_name': taginit})
        else:
            tag = TagaddForm()
    return render_to_response("admin_blogupdate.html", {'blog': blog, 'form': form, 'id': id, 'tag': tag},context_instance=RequestContext(request))
예제 #2
0
파일: posts.py 프로젝트: chenchiyuan/blog
    def make(self, **kwargs):
        make_path = kwargs.get("make", "")
        if not make_path:
            smart_print(u"请指定文件名")

        post_root = settings.POST_DIR_ROOT
        path = os.path.join(post_root, "%s.md" %make_path)
        file_handler = open(path, "r")
        text = file_handler.read()
        file_handler.close()

        html = md.convert(text.decode("utf-8"))
        metadata = parse_meta(md)
        metadata['content'] = HtmlFormatter.format_html(html)
        title = metadata.get("title", "")
        if not title:
            print("MD文件无title")
            return

        blog = Blog.get_by_unique(title=title)
        if not blog:
            blog = Blog()

        for key, value in metadata.items():
            setattr(blog, key, value)

        blog.save()
        smart_print("博客: %s,存储成功" %title)
예제 #3
0
파일: views.py 프로젝트: imosts/flume
def newblog (request, page_id):
    u = User.objects.get (id=get_uid ())
    
    if is_prepare ():
        blog_ls = base_ls ()
        blog_ls.set_S (flmo.Label (set (blog_ls.get_S ()) | set (prepare_stags ())))
        bp = make_blogpointer (base_ls (), u, blog_ls, page_id)
        return ("Created BlogPointer with id %d and S label %s for page_id %s"
                % (ap.id, blog_ls, page_id))

    elif request.POST.has_key ('title'):
        title = request.POST['title']
        previous_page_id = request.POST['page_id']
        try:
            bp = BlogPointer.objects.get (page_id=previous_page_id)
        except BlogPointer.DoesNotExist:
            bp = make_blogpointer (base_ls (), u, base_ls (), page_id)

        b = Blog (blogpointer=bp, title=title, owner=u, pub_date=datetime.datetime.now ())
        b.save (desls=bp.get_labelset ())
        return HttpResponseRedirect (urlprefix () + '/upload/newpost/%d/%d/' % (b.id, new_page_id ()))

    else:
        return render_to_response ('newblog.html',
                                   {'urlprefix': urlprefix (),
                                    'page_id': page_id,
                                    'new_page_id': new_page_id (),
                                    })
예제 #4
0
    def post(self, request):
        """
        Crea un user en base a la información POST
        :param request: HttpRequest
        :return: HttpResponse
        """
        success_message = ''

        form = SignupForm(request.POST)
        if form.is_valid():
            user = User()
            user.username = form.cleaned_data.get('usr')
            user.first_name = form.cleaned_data.get('first_name')
            user.last_name = form.cleaned_data.get('last_name')
            user.email = form.cleaned_data.get('email')
            user.set_password(form.cleaned_data.get('password'))
            user.save()

            blog = Blog()
            blog.title = "My first blog"
            blog.owner = user
            blog.save()

            success_message = 'Creado con éxito!'
            success_message += '<a href="{0}">'.format(
                reverse('post_home', args=[])
            )
            success_message += 'go Home!'
            success_message += '</a>'
        context = {
            'form': form,
            'success_message': success_message
        }
        return render(request, 'users/new_user.html', context)
예제 #5
0
def blog_add(request):
    author = Author.objects.all()
    ification = Classification.objects.all()
    tags = Tag.objects.all()
    if request.method == 'POST':
        af = BlogForm(request.POST)
        if af.is_valid(): 
            cd = af.cleaned_data
	    caption = cd['caption']
	    auid = request.POST.get('authorid')
	    auth = Author.objects.get(id=auid)
	    cationid = request.POST.get('ificationid')
	    ication = Classification.objects.get(id=cationid)
	    content = cd['content']
	    blog = Blog(caption = caption, author = auth, content = content, if_name = ication)
	    blog.save()
	    
	    try:
		tags = request.POST.getlist('answer',None)
		for tag in tags:
		    blog.tags.add(Tag.objects.get(tag_name=tag))
		    blog.save()
	    except DoesNotExist:
		raise Http404

	    return HttpResponseRedirect('/blog/admin/blog_list/')

    else:
        af = BlogForm()
    return render_to_response('admin_badd.html',locals(), context_instance=RequestContext(request))
예제 #6
0
파일: views.py 프로젝트: azhugg/VBlog
def add_blog(request):
	try:
		req = convertRequest(request)

	 	category_name = req.get('category_name', '')
	 	if category_name != '':
	 		category_name = req.get('category_name', '')
	 		category = Category.objects.get_or_create(category_name=category_name)[0]
			category_id = category.id
		else:
			category_id = req.get('category_id', 0)

		title = req.get('title', '')
		content =req.get('content', '')
		user_id = req.get('user_id', 0)

		if title != '' and category_id != 0 and user_id != 0:
			user = User.objects.get(id=user_id)
			category = Category.objects.get(id=category_id)
			blog = Blog(title=title, content=content, category=category, user=user)
			blog.save()
			return HttpResponse(response_json.success())

	except Exception, e:
		return HttpResponse(response_json.fail(traceback.format_exc()))
예제 #7
0
파일: views.py 프로젝트: theSinner/newblog
def add_news(request):

    if not request.user.is_authenticated():
        
        return redirect('/login/')
    else:
        error = ""
        title = content = ""
        maybe_title=maybe_content=""

        if 'add_title' in request.POST and 'add_content' in request.POST: 
            add_title = request.POST.get('add_title')
            add_content = request.POST.get('add_content')
            if not add_content or not add_title:
                error = "please enter the form completely"
                maybe_title = request.POST.get('add_title')
                maybe_content = request.POST.get('add_content')
            else:
                #print 'time'
                #print datetime.datetime.now()
                p = Blog(title=add_title,content = add_content,time=datetime.datetime.now())
                p.save()
                return redirect('/cpanel/')

    return render(request, 'addnews.html', {'state':error,'maybe_title':maybe_title,'maybe_content':maybe_content})
예제 #8
0
파일: views.py 프로젝트: GJP123/Blogic
def edit_blog(request, username, blog_id=None):
    if request.method == "POST":
        if blog_id is None:
            blog = Blog()
            blog.create_date = datetime.now()
            blog.username = username
        else:
            blog = Blog.objects.get(pk=blog_id)
        form = BlogForm(request.POST, instance=blog)
        if form.is_valid():
            blog.modify_date = datetime.now()  # every edit changed the modify date
            blog.published_date = (
                None
            )  # since we have edited the blog we will need to re-publish it (maybe not the right thing to do)
            # import logging; logging.debug(form.instance.__dict__)
            form.save()
            # import logging; logging.debug(form.instance.__dict__)
            return redirect("blog.views.view_blog", username=username, blog_id=blog.pk)
    else:
        if blog_id is None:
            form = BlogForm()
        else:
            blog = get_object_or_404(Blog, pk=blog_id)
            form = BlogForm(instance=blog)

    return render_to_response(
        "blog/edit_blog.html",
        {"blog_id": blog_id, "form": form, "username": username},
        context_instance=RequestContext(request),
    )
예제 #9
0
def make_blog(sender, **kwargs):
    """
    Create a new blog during syncdb. The user
    *should* create a superuser so assume that
    this is the blog author.
    """
    if not kwargs['interactive']:
        return

    # Do nothing if a blog already exists
    try:
        blog = Blog.objects.all()[0]
        return
    except IndexError:
        pass

    # Create a blog if a user exists
    try:
        author = User.objects.all()[0]
    except IndexError:
        return

    try:
        # Prompt for a blog title
        title = raw_input('Blog title: ')
        blog = Blog(title=title, author=author)
        blog.save()
    except KeyboardInterrupt:
        sys.stderr.write("\nOperation cancelled.\n")
        sys.exit(1)
예제 #10
0
파일: views.py 프로젝트: zongshizhen/myblog
def blog_add(request):
    if request.method == 'POST':
        form = BlogForm(request.POST)
        tag = TagForm(request.POST)
        if form.is_valid() and tag.is_valid():
            cd = form.cleaned_data
            cdtag = tag.cleaned_data
            tagname = cdtag['tag_name']
            for taglist in tagname.split():
                Tag.objects.get_or_create(tag_name=taglist.strip())
                title = cd['caption']
                author = Author.objects.get(id=1)
                content = cd['content']
                blog = Blog(caption=title, author=author,
                            content=content)
                blog.save()
            for taglist in tagname.split():
                blog.tags.add(Tag.objects.get(tag_name=taglist.strip()))
                blog.save()
            id = Blog.objects.order_by('-publish_time')[0].id
            return HttpResponseRedirect('/myblog/blog/%s' % id)
        #return HttpResponseRedirect(reverse('detailblog',args=[id]))
    else:
        form = BlogForm()
        tag = TagForm(initial={'tag_name': 'notags'})
    return render(request,'blog_add.html', {'form': form, 'tag': tag},
                         context_instance=RequestContext(request))
예제 #11
0
def create_blog(request):
	errors = []
	template = "blog/templates/create_blog.html"
	form = CreateBlogForm()
	user = request.user

	if not user.is_authenticated():
		raise Http404

	if request.method == "POST":
		form = CreateBlogForm(request.POST)

		if form.is_valid():
			try:
				data = form.cleaned_data
				_blog = Blog()
				_blog.title = data["title"]
				_blog.owner = user
				_blog.url = data["url"]
				_blog.tagline = data["tagline"]
				_blog.active = True
				_blog.save()
				_blog.contributors.add(user)
				_blog.save()
				return HttpResponseRedirect("/blog/%s/"%user.username)
			except:
				errors.append("Blog URL already taken.")

	return render(request, template, {"errors":errors, "form":form})
예제 #12
0
def settings():

    blog = Blog.getone()

    if blog is None:
        blog = {}.fromkeys(Blog.get_fields(), '')
        flashx.warning('You have no settings, please eidt and save')
    return render_template('settings.html', active_tab='settings', blog=blog)
예제 #13
0
파일: views.py 프로젝트: daihaovigg/django
def editor(request):
	if request.method == 'POST' :
		if 'content' in request.POST:
			blog=Blog(title=request.POST['title'].encode('utf8'),content=request.POST['content'].encode('utf8'))
			blog.save()
	return render_to_response('editor.html', 
		{'title': '编辑日志'
		},context_instance=RequestContext(request))
예제 #14
0
def metaWeblog_newPost(user, blogid, struct, publish):
    # todo - parse out technorati tags
    post = Blog(title = struct['title'],
                body_markdown = struct['description'],
                slug = struct.get('permaLink', None),
               )
    post.save()
    setTags(post, struct)
    return post.id
예제 #15
0
def create(request):
	if request.method == "GET":
		return render(request,'blog/create.html',{})

	new_blog = Blog()
	new_blog.title = request.POST["title"]
	new_blog.text = request.POST["text"]
	new_blog.save()

	return redirect('blog_id',new_blog.id)
예제 #16
0
파일: tests.py 프로젝트: brezerk/taverna
 def setUp(self):
     self.setUpProfile()
     blog = Blog(active = True, owner = self.user, name = "Tester's blog")
     blog.save()
     tag = Tag(name = "test tag")
     tag.save()
     post = Post(owner = self.user, title = "Title", text = "This is test text", blog = blog)
     post.save()
     post.tags = [tag]
     post.save()
예제 #17
0
파일: views.py 프로젝트: mazhenpy/pylabsite
    def newPost(self, blogid, username, password, struct, publish):
        self.__isUser(username, password)
        # print(("blogid:", blogid))
        # print(("struct:", struct))

        title = struct['title']
        content = struct['description']
        categorie = struct['categories'][0]

        #生成静态HTML文件
        id = None
        try:
            path = r'{0}/templates'.format(os.path.dirname(__file__))
            id = len(sum([i[2] for i in os.walk(path)], []))
            # print("博客ID:", id)
            static(id, content, categorie, title)

            blog = Blog()
            blog.blog_id = id
            blog.title = title
            blog.categorie = categorie
            blog.content = content
            blog.summary = get_summary(content, 150, u'...')
            blog.post_time = datetime.datetime.today()
            blog.save()

        except Exception as e:
            error_log.error("生成静态文件失败:{0}".format(e))

        return id
예제 #18
0
    def process_item(self, item, spider):
        blog=Blog()
        blog.blog_title=item['title']
        #blog.blog_text="[%s](%s)"%(item['title'],item['href'])
        #处理href,只取最后几位数字
        num=item['href'].split('.')[-2][-7:]
        blog.blog_text='blog/html/'+num+'.html'
        blog.blog_img=''
        blog.blog_text_brief=''
        blog.pub_date=datetime.datetime.strptime(item['date_str'],'%Y-%m-%d %H:%M')
        blog.blog_praise=int(item['commentnum'])
        blog.save()
        
     
        #html=open(blog.blog_text,'w')
        #content=item['content']
        #html.write(content.encode("gbk"))
        #html.close()
        html_dir='/home/dk/mysite/blog/templates/'+blog.blog_text

        file=open(html_dir,'w')

        u=item['content']
        
        file.write(u.encode('utf-8'))#utf8转str
        
        file.close()
        
        
        
        return item
예제 #19
0
	def form_valid(self, form):
		if hasattr(self.request.user, 'blog'):
			form.instance.blog = self.request.user.blog
		else:
			if 'create' in self.request.POST:
				blog = Blog()
				blog.author = self.request.user
				blog.title = self.request.user.get_full_name()
				blog.save()
				form.instance.blog = blog
		return super(PostCreateView, self).form_valid(form)
예제 #20
0
 def post(self, request):
     serializer = UserSerializer(data=request.data)
     if serializer.is_valid():
         new_user = serializer.save()
         blog = Blog()
         blog.title = request.data.get("blog")
         blog.owner = new_user
         blog.save()
         return Response(serializer.data, status=status.HTTP_201_CREATED)
     else:
         return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
예제 #21
0
def addblogok(request):
	title=request.POST.get('title')
	tag_ids=request.POST.getlist('tag_name')
	content=request.POST.get('content')
	blog=Blog()
	blog.title=title
	blog.content=content
	blog.save()
	for tag_id in tag_ids:
		list=Tag.objects.get(id=int(tag_id))
		blog.tags.add(list)
	return HttpResponseRedirect('/list/')
예제 #22
0
파일: views.py 프로젝트: duoanfen/myblog
def blog_update(request, id=""):
    id = id
    if request.method == 'POST':
        form = BlogForm(request.POST)
        tag = TagForm(request.POST)
        if form.is_valid() and tag.is_valid():
            cd = form.cleaned_data
            cdtag = tag.cleaned_data
            tagname = cdtag['tag_name']
            tagnamelist = tagname.split()
            
            for taglist in tagnamelist:
                Tag.objects.get_or_create(tag_name=taglist.strip())
                
            title = cd['caption']
            content = cd['content']
            blog = Blog.objects.get(id=id)
            if blog:
                blog.caption = title
                blog.content = content
                blog.save()
                for taglist in tagnamelist:
                    blog.tags.add(Tag.objects.get(tag_name=taglist.strip()))
                    blog.save()
                tags = blog.tags.all()
                for tagname in tags:
                    tagname = unicode(str(tagname), "utf-8")
                    if tagname not in tagnamelist:
                        notag = blog.tags.get(tag_name=tagname)
                        blog.tags.remove(notag)
            else:
                blog = Blog(caption=blog.caption,content=blog.content)
                blog.save()
            return HttpResponseRedirect('/newblog/%s' % id)
    else:
        try:
            blog = Blog.objects.get(id=id)
        except Exception:
            raise Http404
        form = BlogForm(initial={'caption': blog.caption,'content': blog.content}, auto_id=False)
        tags = blog.tags.all()
        if tags:
            taginit = ''
            for x in tags:
                taginit += str(x) + ' '
            tag = TagForm(initial={'tag_name': taginit})
        else:
            tag = TagForm()
    return render_to_response('blog_add.html',{'blog': blog, 'form': form, 'id': id, 'tag': tag},
                              context_instance=RequestContext(request))
예제 #23
0
파일: views.py 프로젝트: sucheta92/dooby
def blog(request):
  template=loader.get_template('blog/index.html')
  if request.method=='POST':
    form=Blog(request.POST)
    if form.is_valid():
      text=form.cleaned_data['text']
      header=form.cleaned_data['header']
      t=Posting(writing=text,user=header)
      t.save()
      return HttpResponse('<html><head></head><body>Success</body></html>')
  else:
    form = Blog()
    context=RequestContext(request,{'x':form,},)
    return HttpResponse(template.render(context))
예제 #24
0
파일: views.py 프로젝트: modle/construables
def incoming_messages(request):

    if request.method == 'POST':
        title = request.POST.get('headers[Subject]', 'derp')
        body = request.POST.get('plain', 'asdf')

        email_post = Blog(title=title, body=body)
        email_post.save()

        saved_post = Blog.objects.get(slug=email_post.slug)
        if saved_post:
            return HttpResponse(200)
        else:
            return HttpResponse(404)
예제 #25
0
def create_sample(num_blogs=50,
                  num_posts_per_blog=4,
                  num_comments_per_post=7,
                  ):
    for name in names:
        User.objects.create_user(name, '*****@*****.**' % name, '')
    users = list(User.objects.all())
    for i in range(0, num_blogs):
        blog = Blog()
        blog.submitter = random.choice(users)
        blog.name = random.choice(text.split())
        blog.save()
    for blog in Blog.objects.all():
        blog.submitter = random.choice(users)
        blog.save()
        for i in range(0, num_posts_per_blog):
            post = Post.objects.create(body=text,
                                       blog=blog,
                                       name=random.choice(text.split()),
                                       )
            for u in users:
                if random.choice(range(0, 6)) == 0:
                    post.likers.add(u)
    for post in Post.objects.all():
        for i in range(0, num_comments_per_post):
            PostComment.objects.create(submitter=random.choice(users),
                                       post=post,
                                       body=text,
                                       )
예제 #26
0
파일: tests.py 프로젝트: v1k45/blogghar
    def setUp(self):
        super_user = User.objects.create_superuser(
            username='******', email='*****@*****.**', password='******')

        profile = UserProfile(user=super_user)
        profile.save()

        blog = Blog(title='Sample blog', tag_line='Sample tag line',
                    short_description='Sample description', author=super_user)
        blog.save()

        blog_post = Post(title='Sample post', content='Sample content',
                         author=super_user, blog=blog, status='p')
        blog_post.save()
예제 #27
0
    def test_blog(self):
        blog = Blog(title="test blog")
        blog.save()
        self.assertIsInstance(blog, Blog)

        blog_post = BlogPost(blog=blog, title="test post",
                content="this is content")
        blog_post.save()
        self.assertIsInstance(blog_post, BlogPost)

        get_by_slug = BlogPost.objects.get_by_slug(blog_post.slug)
        self.assertIsInstance(get_by_slug, BlogPost)

        homepage = BlogPost.objects.homepage_posts()
        self.assertEquals(len(homepage), 1)
예제 #28
0
파일: views.py 프로젝트: Windfell/oriolus
def blog_add(request):
    if request.method == 'POST':
        form = BlogForm(request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            title = cd['caption']
            author = Author.objects.get(id=1)
            content = cd['content']
            blog = Blog(caption=title, author=author, content=content)
            blog.save()
            id = Blog.objects.order_by('-publish_time')[0].id
            return HttpResponseRedirect('/blog/%s' % id)
    else:
        form = BlogForm()
    return render_to_response('blog/blog_add.html',
                              {'form': form}, context_instance=RequestContext(request))
예제 #29
0
def migrate_v3():
    # Run this quickly before or after deployment
    Blog.add_to_class('base_url', models.CharField('Base URL', max_length=200))
    for blog in Blog.objects.all():
        blog.url = '/blog/' + blog.base_url
        blog.save()

    Post._meta.get_field('last_update').auto_now = False
    for post in Post.objects.all():
        if post.url and post.published_on and '/' not in post.url:
            post.url = post.blog.url_prefix + '%04d/%02d/' % (post.published_on.year, post.published_on.month) + post.url
        post.save()

    Page._meta.get_field('last_update').auto_now = False
    for page in Page.objects.all():
        page.save()
예제 #30
0
파일: views.py 프로젝트: aisk/Django
def add_entry(request):
    if request.method == 'POST':
        form = BlogForm(request.POST, request.FILES)
        if form.is_valid():
            cd = form.cleaned_data
            blog = Blog(title=cd['title'], body_text=cd['body_text'])
            blog.save()
            f = request.FILES['img']
            des_origin_f = open('/Users/zhongnakakei/Documents/Django/moxisite/blog/static/img/test.jpg', "ab")
            for chunk in f.chunks():
                des_origin_f.write(chunk)
            des_origin_f.close()
            return HttpResponseRedirect('/show_entries/')
    else:
        form = BlogForm()
    return render(request, 'blog/show_entries.html', {'form':form})
예제 #31
0
def setup():
    form = SetupForm()
    error = None
    if form.validate_on_submit():
        
        # Encrypt password data
        salt = bcrypt.gensalt()
        hashed_password = bcrypt.hashpw(form.password.data, salt)
        
        # Create Author entitiy
        author = Author(
            form.fullname.data,
            form.email.data,
            form.username.data,
            hashed_password,
            True
            )
        db.session.add(author)
        db.session.flush()
        
        # Check author entity for errors, create Blog entity if none
        if author.id:
            blog = Blog(
                form.name.data,
                author.id
                )
            db.session.add(blog)
            db.session.flush()
        else:
            db.session.rollback()
            error = "Error creating user"
            
        # Check Blog entity for errors
        if author.id and blog.id:
            db.session.commit()
            flash("Blog Created")
            return redirect(url_for('admin'))
        else:
            db.session.rollback()
            error = "Error creating blog"
        
    return render_template('blog/setup.html', form=form)
예제 #32
0
def setup():

    form = SetupForm()
    error = None
    error2 = None  #, blogs_from_author
    if form.validate_on_submit():
        #More secure passwords
        salt = bcrypt.gensalt()
        hashed_password = bcrypt.hashpw(form.password.data, salt)

        author = Author(form.fullname.data, form.email.data,
                        form.username.data, hashed_password, True)
        error = flush_obj(author)
        if error:
            db.session.rollback()
            db.session.close()
            flash("Error registering admin user")
            return render_template('blog/setup.html', form=form, error=error)
        else:
            blog = Blog(form.name.data, author.id)
            #TODO: Create view with author's blog, verify if name matches one of them using
            #blogs_from_author = Blog.query.filter_by().join etc
            #Throw error if author have blog with same name, else continue
            # blogs_from_author = db.query.filter_by(admin=author.id)
            # for blg in blogs_from_author:
            #     if blg.name==blog.name:
            #         error2="Blog and user already exists"
            #         db.sesssion.rollback()
            #         db.session.close()
            #         flash(error2)
            #         return render_template('blog/setup.html', form=form, error=error2)
            error2 = flush_commit(blog)
            if error2:
                flash("Unexpected Database Error registering Blog")
                return render_template('blog/setup.html',
                                       form=form,
                                       error=error2)
            else:
                session['username'] = form.username.data
                flash("Blog created")
                return redirect(url_for('admin'))
    return render_template('blog/setup.html', form=form, error=error)
예제 #33
0
def setup():
    form = SetupForm()
    data = request.form
    error = ""

    blog_name = data.get('name')
    username = data.get('username')
    password = data.get('password')
    fullname = data.get('fullname')
    email = data.get('email')

    print("form.validate_on_submit(): {}".format(form.validate_on_submit()))
    print("data: {}".format(data))

    if form.validate_on_submit():
        author = Author(password=password,
                        email=email,
                        fullname=fullname,
                        username=username,
                        is_author=True)

        db.session.add(author)
        db.session.flush()

        if author.id:
            blog = Blog(admin=author.id, name=blog_name)
            db.session.add(blog)
            db.session.flush()
        else:
            db.session.rollback()
            error = "Error creating Author"

        if author.id and blog.id:
            db.session.commit()
            flash("Blog created")
            return redirect(url_for("admin"))
        else:
            db.session.rollback()
            error = "Error creating Blog"

    return render_template('blog/setup.html', form=form, error=error)
예제 #34
0
def blog(id):
    blog = Blog.get_blog(id)
    posted_date = blog.posted.strftime('%b %d, %Y')

    comment_form = CommentForm()
    if comment_form.validate_on_submit():

        name = comment_form.name.data
        comment = comment_form.comment.data

        new_comment = Comment(name=name, comment=comment, blogit=blog)
        new_comment.save_comment()

        return redirect(url_for('main.blog', id=id))

    comments = Comment.get_comments(blog)
    return render_template('blogs.html',
                           blog=blog,
                           comment_form=comment_form,
                           comments=comments,
                           date=posted_date)
예제 #35
0
def home():
    quotes = get_Quotes()
    print(quotes)
    sports = Blog.get_blogs('Sports-Blog')
    travel = Blog.get_blogs('Travel-Blog')
    fitness = Blog.get_blogs('Fitness-Blog')
    fashion = Blog.get_blogs('Fashion-Blog')
    food = Blog.get_blogs('Food-Blog')
    politics = Blog.get_blogs('Political-Blog')

    return render_template('home.html',
                           sports=sports,
                           travel=travel,
                           fitness=fitness,
                           fashion=fashion,
                           food=food,
                           quotes=quotes)
예제 #36
0
    def post(self, request):
        """
        Registro de un user
        :param request: HttpRequest
        :return: HttpResponse
        """
        form = RegisterForm(request.POST)
        context = dict()
        if form.is_valid():
            username = form.cleaned_data.get('username')
            first_name = form.cleaned_data.get('first_name')
            last_name = form.cleaned_data.get('last_name')
            email = form.cleaned_data.get('email')
            password = form.cleaned_data.get('password')

            try:
                user = User.objects.get(username=username, email=email)

            except User.DoesNotExist:

                # Creo usuario
                new_user = User.objects.create_user(username, email, password)

                # Añado otra información
                new_user.first_name = first_name
                new_user.last_name = last_name
                new_user.save()

                # Hago Login
                django_login(request, new_user)

                # Creo blog al registrar con el nombre del usuario
                new_blog = Blog()
                new_blog.name = form.cleaned_data.get(
                    'blog_name')  # nombre por defecto
                new_blog.owner = request.user
                new_blog.save()

                url = request.GET.get('next', 'posts_list')
                return redirect(url)

            else:
                context["form"] = form
                context['error'] = "Usuario ya registrado"

            return render(request, 'blog/register.html', context)
예제 #37
0
def setup_page():
    blog = Blog.query.count()

    if blog:
        return redirect(url_for("admin_page"))

    form = SetupForm()

    error = ""

    if form.validate_on_submit():
        salt = bcrypt.gensalt()
        hashed_password = bcrypt.hashpw(form.password.data, salt)
        user = User(form.fullname.data, form.email.data, form.username.data,
                    hashed_password, True)
        try:
            db.session.add(user)
            db.session.flush()
        except Exception as e:
            print(e)
            error = "Choose a unique username and email"
            return render_template("blog/setup.html", form=form, error=error)

        if user.user_id:
            blog = Blog(form.name.data, user.user_id)
            db.session.add(blog)
            db.session.flush()
        else:
            db.session.rollback()

        if user.user_id and blog.blog_id:
            db.session.commit()
            flash("Blog created")
            return redirect(url_for("admin_page"))
        else:
            db.session.rollback()
            error = "Error creating blog"
    return render_template("blog/setup.html", form=form, error=error)
예제 #38
0
def createBlog(request):

    last_blog = request.POST.get('last_blog')
    user = request.user
    csrf_token = (csrf(request)['csrf_token'])
    blog = Blog()
    blog.user = user

    title = request.POST['title']
    blog.title = title
    content = request.POST['content']
    content = content.strip()

    if len(content):
        blog.content = content[:255]
    blog.save()

    html = _html_feeds(last_blog, user, csrf_token)
    import pdb
    pdb.set_trace()
    return HttpResponse(html)
예제 #39
0
def setup():
    form = SetupForm()
    error = ''
    if form.validate_on_submit():
        salt = bcrypt.gensalt()
        hash_pass = bcrypt.hashpw(form.password.data.encode('utf-8'), salt)

        author = Author(
            form.fullname.data,
            form.email.data,
            form.username.data,
            hash_pass,
            True
        )
        db.session.add(author)
        db.session.flush()
        if author.id:
            blog = Blog(
                form.name.data,
                author.id
            )
            db.session.add(blog)
            db.session.flush()
        else:
            db.session.rollback()
            error = 'ERROR creating user'

        if author.id and blog.id:
            db.session.commit()
            flash('blog created')
            return redirect(url_for('admin'))
        else:
            db.session.rollback()
            error = 'error making blog'

        # flash()

    return render_template('blog/setup.html', form=form, error=error)
예제 #40
0
def setup():
    from blog.models import Blog, Article, Comment, Category
    blogs = []
    for title in ["blog1", "blog2"]:
        blogs.append(Blog(title=title))
    Blog.objects.bulk_create(blogs)
    blogs = list(Blog.objects.all().order_by("id"))

    for blog in blogs:
        articles = []
        for title in ["hello world", "good bye world"]:
            articles.append(Article(title=title, content=title, blog=blog))
        Article.objects.bulk_create(articles)
        articles = list(Article.objects.all().order_by("id"))

        for article in articles:
            comments = []
            for comment in ["comment1", "comment2", "comment3"]:
                comments.append(
                    Comment(title="anonymous",
                            content=comment,
                            article=article))
            Comment.objects.bulk_create(comments)
            comments = list(Comment.objects.all().order_by("id"))

    categories = []
    for name in ["hello", "good-bye"]:
        categories.append(Category(name=name))
    Category.objects.bulk_create(categories)
    categories = list(Category.objects.all().order_by("id"))

    for article in Article.objects.filter(title__startswith="hello"):
        categories[0].articles.add(article)
    for article in Article.objects.filter(title__startswith="good-bye"):
        categories[1].articles.add(article)
    for category in categories:
        category.save()
예제 #41
0
def blog_add(request):

    if not request.user.is_authenticated():
        messages.error(request, "You must login to post a blog")
        return redirect("login")

    if not request.method == "POST":
        form = BlogAddForm
        return render(request, "blog_add.html", {'form': form})

    form = BlogAddForm(request.POST)

    if not form.is_valid():
        return render(request, "blog_add.html", {'form': form})

    blog = Blog()
    blog.user = request.user
    blog.title = form.cleaned_data['title']
    blog.body = form.cleaned_data['body']
    blog.save()

    return redirect("home")
예제 #42
0
    def setUp(self):
        CustomUser(id=1,
                   first_name='Bohdan',
                   last_name='Dubas',
                   phone='123456789',
                   email='*****@*****.**',
                   is_active=False).save()

        self.user = CustomUser.objects.get(id=1)

        Blog(id=22,
             name='TestName',
             description='TestDescription',
             author=self.user).save()

        self.blog = Blog.objects.get(id=22)

        Post(id=333,
             title='TestPost',
             content='Just testing post',
             author=self.user,
             blog=self.blog).save()

        self.post = Post.objects.get(id=333)
예제 #43
0
파일: views.py 프로젝트: chilmnchig/blog
def edit(request, blog_id):
    blog = Blog.get_detail(request, blog_id)
    confirm = False
    images = ContentImage.objects.filter(blog=blog)

    if request.method == 'POST':
        form = BlogForm(request.POST, request.FILES, instance=blog)

        if 'delete_image' in request.POST:  # 紐づけ画像の削除
            ContentImage.delete_image(request)
        elif 'delete' in request.POST:  # 削除ボタンを押す
            if not images.exists():  # 紐づけ画像が存在しない
                confirm = True  # 確認画面へ
            else:  # 紐づけ画像が存在する
                confirm = 'error'
        elif 'confirmed' in request.POST:  # 確認画面での選択
            if request.POST['confirmed'] == "はい":
                if not images.exists():  # 紐づけ画像が存在しない
                    blog.delete()  # 削除実行
                    return redirect('text_list')
                else:  # 紐づけ画像が存在する
                    confirm = 'error'
        elif form.is_valid():  # 内容変更の保存
            blog = form.save()
            return blog.save_next(request)

    else:
        form = BlogForm(instance=blog)

    context = {
        'form': form,
        'blog_id': blog_id,
        'confirm': confirm,
        'images': images
    }
    return TemplateResponse(request, 'blog/edit.html', context)
예제 #44
0
파일: views.py 프로젝트: lhcxnqm/MySite
def update_comment(request):
    #如果用户未登陆,则不允许评论
    if not request.user.is_authenticated:
        return render(request, 'error.html', {'message': '用户未登陆'})
    text = request.POST.get('text', '').strip()
    object_id = int(request.POST.get('object_id', ''))
    #如果评论内容为空,则不允许评论
    if text == '':
        return render(request, 'error.html', {'message': '评论内容为空'})

    blog = Blog()
    blogtype = ContentType.objects.get_for_model(blog)

    comment = Comment()
    comment.user, comment.text = request.user, text
    comment.content_type, comment.object_id = blogtype, object_id
    comment.save()

    #返回数据
    data = {}
    data['username'] = comment.user.username
    data['comment_time'] = comment.comment_time.strftime('%Y-%m-%d %H:%M:%S')
    data['text'] = comment.text
    return JsonResponse(data)
예제 #45
0
 def create_blog(self):
     uname = self.request.session.get('uname')
     blog_title = self.request.POST.get('blog_title')
     blog_classify = self.request.POST.get('blog_classify')
     blog_label = self.request.POST.get('blog_label')
     blog_content = self.request.POST.get('blog_content')
     user_form = UserInfo.objects.filter(name=uname)
     classify_form = Classify.objects.filter(id=blog_classify)
     label_form = Label.objects.filter(id=blog_label)
     try:
         Blog(name=user_form[0],
              classify=classify_form[0],
              label=label_form[0],
              title=blog_title,
              content=blog_content,
              create_time=now(),
              update_time=now()).save()
     except Exception as e:
         print('create blog fail')
         print(e)
         return self.ret_dict
     self.ret_dict['result'] = 1
     print('create blog success')
     return self.ret_dict
예제 #46
0
def setup():
	form = SetupForm()
	error = ""
	if form.validate_on_submit():
		salt = bcrypt.gensalt()
		spassword = str(form.password.data)
		bpassword = spassword.encode()
		bhashed_password = bcrypt.hashpw(bpassword, salt)
		shashed_password = bhashed_password.decode()
		author = Author(
			form.fullname.data,
			form.email.data,
			form.username.data,
			shashed_password,
			True
			)
		db.session.add(author)
		db.session.flush()
		if author.id:
			blog = Blog(
				form.name.data,
				author.id
				)
			db.session.add(blog)
			db.session.flush()
		else:
			db.session.rollback()
			error = "Error creating user"
		if author.id and blog.id:
			db.session.commit()
			flash("Blog created")
			return redirect(url_for('admin'))
		else:
			db.session.rollback()
			error = "Error creating blog"
	return render_template('blog/setup.html', form=form, error=error)
예제 #47
0
def create_blog(request,username):
    _user = get_object_or_404(User,username=username)
    if not request.user.is_authenticated():
        return render(request,'blog/user_home.html',{
            'user':_user,
            'error_message':"it's not your space, you can't create a blog",
            })
    if request.POST:
		_title = request.POST.get('title')
		if _title.strip() =='':
		    return render(request, 'blog/create_blog.html', {
		        'user':_user,
		        'error_message':"You have to write title for a blog."
		        })
		b = Blog(user=_user,title=_title.strip())
		b.create_slug()
		b.save()
		return render(request,'blog/user_home.html',{'user':_user})
    else:
        return render(request, 'blog/create_blog.html', {'user':_user})
예제 #48
0
# ----------------------------------------------------------------------------------------------------------------------- #
*****Meta options:
	db_table = 'music_album'  The name of the database table to use for the model:
	default_related_name    The default is <model_name>_set.
	managed = True   If False, no database table creation or deletion operations will be performed for this model.you manage it youself.
	ordering = ['pub_date']/ordering = ['-pub_date']  正反排序
	unique_together = ("driver", "restaurant")  Sets of field names that, taken together, must be unique
		# 注意: unique_together = (("driver", "restaurant"), )  !=  unique_together = ("driver", "restaurant")
	index_together = ["pub_date", "deadline"]  Sets of field names that, taken together, are indexed


# ----------------------------------------------------------------------------------------------------------------------- #
******# API that lets you create, retrieve, update and delete [CRUD] Model objects in Python ==>>
1 Creating objects:
>>> from blog.models import Blog
>>> b = Blog(name='Beatles Blog', tagline='All the latest Beatles news.')
>>> b.save()  # To create and save an object in a single step, use the [ create() ] method.
To save changes[ UPDATE ] to an object that’s already in the database, u can also use save():
>>> b5.name = 'New name'
>>> b5.save()

2 Saving ForeignKey and ManyToManyField fields:
>>> from blog.models import Entry
>>> entry = Entry.objects.get(pk=1)
>>> cheese_blog = Blog.objects.get(name="Cheddar Talk")
>>> entry.blog = cheese_blog
>>> entry.save()

3 use the add() method on the field to add a record to a ManyToManyField relation:
>>> from blog.models import Author
>>> joe = Author.objects.create(name="Joe")
예제 #49
0
 def setUp(self):
     self.c = Category(title="MyTitle")
     self.c.save()
     self.b = Blog(title="BlogTitle", category=self.c)
     self.b.save()
예제 #50
0
 def post(self, request, blog_id):
     form = DeleteBlogForm(request.POST)
     blog = Blog().get_blog_by_id(blog_id)
     if form.is_valid():
         blog.delete()
         return render(request, 'blog/messages/blog_was_deleted.html')
一.模型
Each model is a Python class that subclasses django.db.models.Model.
Each attribute of the model represents a database field.

二.模型查询
1.create
>>> from blog.models import Blog
>>> b = Blog(name='Beatles Blog', tagline='All the latest Beatles news.')
>>> b.save()
2.save change
>>> b5.name = 'New name'
>>> b5.save()
3.

三.Aggregation
the ways that aggregate values can be generated and returned using Django queries

from django.db import models

class Author(models.Model):
    name = models.CharField(max_length=100)
    age = models.IntegerField()

class Publisher(models.Model):
    name = models.CharField(max_length=300)
    num_awards = models.IntegerField()

class Book(models.Model):
    name = models.CharField(max_length=300)
    pages = models.IntegerField()
    price = models.DecimalField(max_digits=10, decimal_places=2)
예제 #52
0
파일: admin.py 프로젝트: harveycby/blog
def editBlog():
    categories = Category.query.all()
    blog = Blog()
    return render_template('admin/edit_blog.html',
                           categories=categories,
                           blog=blog)
예제 #53
0
def create_blog(request):
    errors = []
    template = "blog/templates/create_blog.html"
    form = CreateBlogForm()
    user = request.user

    if not user.is_authenticated():
        raise Http404

    if request.method == "POST":
        form = CreateBlogForm(request.POST)

        if form.is_valid():
            try:
                data = form.cleaned_data
                _blog = Blog()
                _blog.title = data["title"]
                _blog.owner = user
                _blog.url = data["url"]
                _blog.tagline = data["tagline"]
                _blog.active = True
                _blog.save()
                _blog.contributors.add(user)
                _blog.save()
                return HttpResponseRedirect("/blog/%s/" % user.username)
            except:
                errors.append("Blog URL already taken.")

    return render(request, template, {"errors": errors, "form": form})
예제 #54
0
    def post(self, request):
        form = WriteBlogForm(request.POST)
        print(form)
        title = request.POST.get('title', '')
        content = request.POST.get('content', '')
        say = request.POST.get('say', '')
        image = request.POST.get('image', '')
        tag = request.POST.get('tag', '')
        category = request.POST.get('category', '')
        print(image)
        blog = Blog()
        blog.title = title
        blog.content = content
        #获取分类
        category = Category.objects.get(name=category)
        blog.category = category
        #获取封面
        if image:
            blog.image = image
        #获取作者想说的话,如果为空,则填入作者的个性签名
        if not say:
            blog.want_to_say = request.user.sign
        else:
            blog.want_to_say = say

        blog.author = request.user
        blog.save()
        #获取标签
        if tag:
            tag_list = tag.split(',')
            for tag in tag_list:
                tag = Tag.objects.get(name=tag)
                blog.tags.add(tag)

        blog.save()

        print('ok')

        return HttpResponse('{"status":"success","msg":"发布成功"}',
                            content_type='application/json')
예제 #55
0
def menu_limit_choices_to_blog():
    return {
        'is_show': True,
        'sort__gt': 0,
        'pk__in': Blog.queryset_not_cloned(flat_pk=True)}
예제 #56
0
 def mark_preferred(self, request, queryset: Blog):
     queryset.update(preference=True)
예제 #57
0
 def make_dataset():
     community = Communities(name="Com")
     community.save()
     blog = Blog(title="Blog", community=community)
     blog.save()
     return blog, community
예제 #58
0
 def unmark_preferred(self, request, queryset: Blog):
     queryset.update(preference=False)
예제 #59
0
def index(request):
    context = {'blog_title': Blog().blog_title}
    #     print(context)
    return render(request, 'blog/index.html', context)
예제 #60
0
from faker import Faker
from blog.models import Blog
for i in range(1000):
    myfaker = Faker(seed=i)
    blog = Blog()
    blog.title = myfaker.name()
    blog.body = myfaker.text()
    blog.save()