Django 我的Python自学之路Python 运维

Python博客(跟随慕课网DJango课程学习)

2017-03-06  本文已影响448人  小白猿

本博客是记录跟从慕课网课程所记下的笔记,更多内容请访问慕课网慕课网--项目源码

新建项目

分析项目文件

项目目录.png

manager.py

项目同名目录 myBlog

wsgi.py【Python服务器网管接口】

url.py

settings.py

init.py

创建应用

创建响应【在blog.views 模块下】

详解url配置

创建Templates【模板】

创建Models

Admin

博客主界面

博客文章页面

def article_page(request,article_id):
          article = models.Article.objects.get(pk=article_id)
          return render(request,"blog/article_page.html",{"article":article})
<body>
    <h1>{{article.title}}</h1>
    <br>
    <h3>{{article.content}}</h3>
    <br>
    <br>
    <a href="">修改文章</a>
</body>

博客主页面链接到文章页面

博客撰写页面

<body>
<form action="" method="post">
    <label> 文章标题:
    <input type="text" name="title">
    </label>
    <br>
    <label> 文章内容:
    <input type="text" name="content">
    </label>
    <br>
    <input type="submit" value="提交">
</form>

修改文章

def edit_page(request,article_id):
    if str(article_id) == "0":
        return  render(request,"blog/edit_page.html")
    article = models.Article.objects.get(pk=article_id)
    return render(request, "blog/edit_page.html",{"article":article })
def edit_action(request):
    title = request.POST.get("title")
    content = request.POST.get("content")
    article_id = request.POST.get("article_id")
    if str(article_id) == "0":
        models.Article.objects.create(title=title,content=content)
        articles = models.Article.objects.all()
        return render(request, "blog/index.html", {"articles": articles})
    article = models.Article.objects.get(pk=article_id)
    article.title = title
    article.content = content
    article.save()
    return render(request, "blog/article_page.html", {"article": article})
<form action="{% url "blog:edit_action" %}" method="post">
    {% csrf_token %}
    {% if article %}
        <input type="hidden" name="article_id" value="{{ article.id }}">
        <label> 文章标题:
            <input type="text" name="title", value="{{ article.title }}">
        </label>
        <br>
        <label> 文章内容:
            <input type="text" name="content" value="{{ article.content }}">
        </label>
    {% else %}
        <input type="hidden" name="article_id" value="0">
        <label> 文章标题:
            <input type="text" name="title">
        </label>
        <br>
        <label> 文章内容:
            <input type="text" name="content">
        </label>
    {% endif %}
    <br>
    <input type="submit" value="提交">
</form>

番外篇:Django的一些使用技巧

过滤器

############### 修改前 #######################
<body>
<form action="{% url "blog:edit_action" %}" method="post">
    {% csrf_token %}
    {% if article %}
        <input type="hidden" name="article_id" value="{{ article.id }}">
        <label> 文章标题:
            <input type="text" name="title", value="{{ article.title }}">
        </label>
        <br>
        <label> 文章内容:
            <input type="text" name="content" value="{{ article.content }}">
        </label>
    {% else %}
        <input type="hidden" name="article_id" value="0">
        <label> 文章标题:
            <input type="text" name="title">
        </label>
        <br>
        <label> 文章内容:
            <input type="text" name="content">
        </label>
    {% endif %}
    <br>
    <input type="submit" value="提交">
</form>
</body>
###############修改后#######################
<body>
<form action="{% url "blog:edit_action" %}" method="post">
    {% csrf_token %}
    <input type="hidden" name="article_id" value="{{ article.id | default:"0" }}">
    <label> 文章标题:
        <input type="text" name="title", value="{{ article.title }}">
    </label>
    <br>
    <label> 文章内容:
        <input type="text" name="content" value="{{ article.content }}">
    </label>
    <br>
    <input type="submit" value="提交">
</form>
</body>

Django shell

class ArticleAdmin(admin.ModelAdmin):
    # 增加显示列数,建议后面用元组,因为不可修改,且列名要与数据库字段名保持一致
    list_display = ("title","content")
admin.site.register(Article,ArticleAdmin)
filter.png
上一篇下一篇

猜你喜欢

热点阅读