django学习笔记8--博客撰写页面

博客撰写页面需要有:

  1. 文章标题输入框
  2. 文章内容输入框
  3. 提交按钮

这需要html知识,可以用1个form搞定。新建个edit_page.html如下:




    
    Edit Page




然后编辑views.py,建立响应函数以显示编辑页面

def edit_page(request):
    return render(request,'blog/edit_page.html')

然后是urls.py:

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.index),
    url(r'^article/(?P[0-9]+)$',views.article_page, name='article_page'),
    url(r'^edit$',views.edit_page, name='edit_page'),
]

然后要把编辑的文章内容、标题写入数据库。标题和内容存储在响应函数收到的参数request.POST中。request.POST返回一个字典,而字典的get方法dict.get(key,default)意思是调用键为key的值,如果不存在则返回default。在views.py里创建个新的响应函数,接受在点了提交后收到的请求,把标题内容保存到数据库,响应出博客主页面。

def edit_action(request):
    title = request.POST.get('title','TITLE')
    content = request.POST.get('content','CONTENT')
    models.Article.objects.create(title=title,content=content)
    articles = models.Article.objects.all()
    return render(request,'blog/index.html',{'articles':articles})

这里request里包含了edit_page.html文件里的name为“title”和“content”的数据。

models.Article.objects.create(title=title,content=content)

这行代码里,models即为数据库的模板,create方法接受title和content两个字段,创建数据库里新的一行。
然后给“新文章”加超链接:




    
    Title


新文章

{% for article in articles %} {{ article.title}}
{% endfor %}

你可能感兴趣的:(django学习笔记8--博客撰写页面)