Django博客开发系列–06删除博客

视图函数blog/views.py def blog_delete(request,id): blog=Blog.objects.get(id=id) blog.delete() return redirect(‘blog:blog_list’) blog/urls.py app_name = ‘blog’ urlpatterns = [ path(‘blog-delete//’, views.blog_delete, name=’blog_delete’), ] 增加点击删除的连接 <a href=”blog_delete’ blog.id %}”>删除文章</a> 增加弹窗 增加弹窗,等待用户再次确定再删除 下载Layer, 必须先引入jquery <a href=”http://%%20static%20'jquery/jquery-3.3.1.js'%20%”>http://%%20static%20'jquery/jquery-3.3.1.js'%20%</a&gt; <a href=”http://%%20static%20'layer/layer.js'%20%”>http://%%20static%20'layer/layer.js'%20%</a&gt; 修改HTML相关删除连接,增加onclick方法 <!–原链接–> <a href=”blog_delete’ blog.id %}”>删除文章</a> <!–修改如下–> <a href=”#”>删除文章</a> function confirm_delete() { layer.open({ title: “确认删除”, content: “确认删除这篇文章吗?”, yes: function(index, layero) { location.href='{% url “article:article_delete”ContinueContinue reading “Django博客开发系列–06删除博客”

Django博客开发系列–05修改博客

视图函数blog/views.py def blog_update(request,id): blog=Blog.objects.get(id=id) if request.method==’POST’: blog_post_form=BlogPostForm(data=request.POST) if blog_post_form.is_valid(): blog.title=request.POST[‘title’] blog.body=request.POST[‘body’] blog.save() return redirect(‘blog:blog_detail’, id=id) else: return HttpResponse("表单有问题") else: blog_post_form=BlogPostForm() context={‘blog’:blog,’blog_post_form’:blog_post_form} return render(request,’blog/update.html’,context) templates/blog/update.html <form method="post" action=""> {% csrf_token %} <div class="form-group"> <label for="title">文章标题</label> <input type="text" id="title" name="title" value="{{ blog.title }}"> </div> <div class="form-group"> <label for="body">文章正文</label> <textarea id="body" name="body" rows="12">{{ blog.body }}</textarea> </div> <button type="submit"ContinueContinue reading “Django博客开发系列–05修改博客”

Django博客开发系列–04发布新博客

新建立blog/forms.py 建立表单,用户通过表单发布新博客 class BlogPostForm(forms.ModelForm): class Meta: model=Blog fields=(‘title’,’body’) 写视图函数blog/views.py 如果是用户提交,则把提交的数据保存到数据库,否则新建表格让用户填写 def blog_create(request): if request.method==’POST’: blog_post_form=BlogPostForm(data=request.POST) if blog_post_form.is_valid(): #commit=False保持数据,暂时不提交 new_blog=blog_post_form.save(commit=False) new_blog.author=User.objects.get(id=1)#id暂时不管 new_blog.save() return redirect("blog:blog_list") else: return HttpResponse("表单内容有误,请重新填写") else: blog_post_form=BlogPostForm() context={‘blog_post_form’:blog_post_form} return render(request,’blog/create.html’,context) templates/blog/create.html Django 里面如果是表格一定要 {% csrf_token %} <form method="post" action=""> {% csrf_token %} <label for="title">标题</label> <!–name对应数据库–> <input type="text" id="title" name="title"> <label for="body">正文</label> <textarea id="body" name="body"></textarea>ContinueContinue reading “Django博客开发系列–04发布新博客”

Django博客开发系列–03展示博客详细信息

urls.py app_name = ‘blog’ urlpatterns = [ path(‘blog-detail/<int:id>’,views.blog_detail,name=’blog_detail’), ] views.py id对应于上面url传入的id,该id由下面list.html传入 blog=Blog.objects.get(id=id):从数据库取对应值赋值给blog context={‘blog’:blog}:创建字典传递给显示的HTML return render(request,’blog/detail.html’,context):跳转到detail.html def blog_detail(request,id): blog=Blog.objects.get(id=id) context={‘blog’:blog} return render(request,’blog/detail.html’,context) templates/blog/detail.html detail.html {{blog.title}} {{blog.author}} {{blog.body}} list.html 为list.html中的博客增加连接,点击该博客进入博客详细页面 HTML: {% url ‘blog:blog_detail’ blog.id %} URL: 对应于path(‘blog-detail/int:id’,views.blog_detail,name=’blog_detail’) blog:对应于url该App指定的名称空间:app_name = ‘blog’ blog_detail:对应于url里面name blog.id: 最后传入具体哪个博客 {% for blog in blogs %} <p><a href="{% url ‘blog:blog_detail’ blog.id %}">{{blog.title}}</a></p> <p>{{blog.author}}</p>ContinueContinue reading “Django博客开发系列–03展示博客详细信息”

Django博客开发系列–02展示文章列表

urls.py path(”,views.blog_list,name=’blog_list’), views.py def blog_list(request): blog_list=Blog.objects.all() context={‘blogs’:blog_list} return render(request,’blog/list.html’,context) templates/blog/list.html 配置setting TEMPLATES = [{ ‘DIRS’: [os.path.join(BASE_DIR, ‘templates’)],}] {% for blog in blogs %} <p>{{blog.title}}</p> {% endfor %}

Django博客开发系列–01创建应用

建立第一个应用blog python manage.py startapp blog setting 注册blog 配置访问路径 my_site/urls blog/urls 配置数据库 数据库:作者,标题,正文,创建时间,修改时间 排序方式,返回值 数据迁移 python manage.py makemigrations python manage.py migrate 把数据库注册到后台 admin.py admin.site.register(Blog)