Django搭建博客实践

简介:

最终效果:
一揽全局,真是骚

摩拳擦掌,开始制作过程:
新建项目和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效果
这样基本的博客也就搭建好了,博文详情页的上一篇下一篇这个功能稍后再弄。先看一下大体效果:
一揽全局,真是骚

相关文章
|
5月前
|
Python API 网络架构
Django实践-10RESTful架构和DRF入门
Django实践-10RESTful架构和DRF入门
Django实践-10RESTful架构和DRF入门
|
5月前
|
中间件 程序员 开发工具
Django实践-08中间件的应用
Django实践-08中间件的应用
Django实践-08中间件的应用
|
29天前
|
测试技术 持续交付 Docker
Django中的自动化部署与持续集成实践
【4月更文挑战第15天】本文介绍了Django项目中自动化部署与持续集成的实践方法。自动化部署通过选择Ansible、Fabric或Docker等工具,编写部署脚本,配置持续集成工具(如Jenkins、GitLab CI),确保服务器环境一致,实现快速应用上线。持续集成则涉及配置版本控制系统,设置自动化构建和测试,编写全面的测试用例,集成代码质量检查工具,并配置通知机制,以提升代码质量和开发效率。这两者结合能有效提升项目的迭代速度和可靠性。
|
3月前
|
数据库 开发者 Python
Python在Web开发中的应用:Flask与Django框架介绍与实践
Python在Web开发中的应用:Flask与Django框架介绍与实践
|
5月前
|
前端开发 Python JSON
Django实践-09前后端分离开发入门
Django实践-09前后端分离开发入门
Django实践-09前后端分离开发入门
|
5月前
|
SQL Python BI
Django实践-07日志调试,Django-Debug-Toolbar配置与sql优化
Django实践-07日志调试,Django-Debug-Toolbar配置与sql优化
Django实践-07日志调试,Django-Debug-Toolbar配置与sql优化
|
5月前
|
前端开发 开发工具 git
Django实践-06导出excel/pdf/echarts
Django实践-06导出excel/pdf/echarts
Django实践-06导出excel/pdf/echarts
|
5月前
|
中间件 开发工具 数据安全/隐私保护
Django实践-05Cookie和Session
Django实践-05Cookie和Session
Django实践-05Cookie和Session
|
5月前
|
JSON 前端开发 JavaScript
Django实践-04静态资源和Ajax请求
Django实践-04静态资源和Ajax请求
Django实践-04静态资源和Ajax请求
|
5月前
|
人工智能 开发工具 数据库
Django实践-03模型-02基于admin管理表
Django实践-03模型-02基于admin管理表
Django实践-03模型-02基于admin管理表