美文网首页
Django搭建博客实践

Django搭建博客实践

作者: 我的袜子都是洞 | 来源:发表于2018-11-26 20:25 被阅读22次

    最终效果:


    一揽全局,真是骚

    摩拳擦掌,开始制作过程:
    新建项目和app:

    新建项目django-admin startproject first
    添加apppython3 manage.py startapp blog

    项目目录下settings.py添加应用:

    INSTALLED_APPS = [
        ....
        'blog.apps.BlogConfig',
    ]
    

    建立模型:models.py文件:

    models.py

    说明:

    在django2.0后,定义外键和一对一关系的时候需要加on_delete选项,此参数为了避免两个表里的数据不一致问题,不然会报错:
    TypeError: __init__() missing 1 required positional argument: 'on_delete'
    参数说明:
    on_delete有CASCADE、PROTECT、SET_NULL、SET_DEFAULT、SET()五个可选择的值
    CASCADE:此值设置,是级联删除。
    PROTECT:此值设置,是会报完整性错误。
    SET_NULL:此值设置,会把外键设置为null,前提是允许为null。
    SET_DEFAULT:此值设置,会把设置为外键的默认值。
    SET():此值设置,会调用外面的值,可以是一个函数。
    一般情况下使用CASCADE就可以了。

    迁移数据库,一顿操作猛如虎:

    python3 manage.py makemigrationspython3 manage.py migrate

    迁移数据库

    项目的urls.py配置:

    urlpatterns = [
        ...
        path('blog/', include('blog.urls')),
    ]
    

    应用的urls.py配置:

    from django.urls import path 
    from . import views
    app_name = 'blog'
    urlpatterns = [
        path('', views.index, name='index'),
    ]
    

    使用模板继承,妈妈再也不会担心我敲的代码冗余了。
    base.html:

    base.html
    index.html:
    index.html
    猛敲python3 manage.py runserver,访问一下http://127.0.0.1:8000/blog/,看能不能转:
    你是我的理想型

    简单搞一下管理后代,方便以后发博文。
    项目下admin.py文件就是你啦。

    admin.py
    访问:http://127.0.0.1:8000/admin/,创建超级用户python3 manage.py createsuperuser按提示操作,输入账号进入后台。
    管理后台 文章管理界面

    就这样子,东一榔头西一棒。来搞博文详情页吧。
    设置blog/urls.py每篇博文通过传递的博客文章唯一属性id来识别。:

    urlpatterns = [
       ...
       path('post/<int:post_id>/', views.detail, name='detail'),
    ]
    

    views.py文件,获取传递过来的post_id,通过模型读取博客文章,如果不存在返回404错误:

    views.py
    模板detail.html文件:
    detail.html
    代码基本撸玩了,进页面看一下吧。
    博客详情页
    简直完美。骨架弄好了,咱来添砖加瓦吧。让博客详情页支持传说中的Markdown,给机器装一下markdown,行云流水的敲下pip3 install markdown。然后继续在IDE中撸代码。views.py撒上markdown花椒后味道会不会更香一点?
    views.py
    当然这里光撒上花椒后味道还不能散发出来,被Django的安全机制挡住了。咱开启一下,detail.html里的
    {{ post.body | safe }}
    

    加上safe就是不一样。然后引入css样式文件就好啦,这些静态的文件上线的时候都要集中收集好,统一部署。所以base.html文件第一行要加上

    {% load static %}
    

    在head标签里再加上

    <link rel="stylesheet" href="{% static 'blog/css/highlights/github.css' %}">
    

    参照Django手册引入静态文件的方式做就可以咯。效果真是杠杠的!


    Markdown效果

    这样基本的博客也就搭建好了,博文详情页的上一篇下一篇这个功能稍后再弄。先看一下大体效果:


    一揽全局,真是骚

    相关文章

      网友评论

          本文标题:Django搭建博客实践

          本文链接:https://www.haomeiwen.com/subject/cinbqqtx.html