1-首先创建项目 项目名称随意取(我这里叫做BK)

2-创建app app取名为boke

1-在BK.settings.py文件中配置

ALLOWED_HOSTS = ['*']
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','boke',
]
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'BK','USER': 'root','PASSWORD': 'qwe123','HOST': '127.0.0.1','PORT': '3306',}
}
STATICFILES_DIRS=[os.path.join(BASE_DIR, 'static')
]

2-在BK目录下__init__.py文件中配置
这里需要下载pymysql库
下载命令: pip install pymysql

import pymysql
pymysql.install_as_MySQLdb()

3-在boke目录下创建urls.py文件后 在BK.urls.py中配置

from django.contrib import admin
from django.urls import path,includeurlpatterns = [path('admin/', admin.site.urls),path('boke/', include('boke.urls')),
]

4-在boke.modles中创建表模型

from django.db import models# Create your models here.class Blog(models.Model):title = models.CharField(max_length=20)content = models.TextField()

5-在boke.views.py文件中写好视图函数

from django.shortcuts import render,redirect,reverse
from django.views import View
from django.http import HttpResponse
from boke.models import Blog
# Create your views here.def index(request):return render(request,'boke/index.html')
#添加 博客
def add(request):#判断请求方式if request.method == 'GET':return render(request,'boke/add.html')elif request.method == 'POST':#添加数据 获取标题以及内容title = request.POST.get('title')content = request.POST.get('content')#print(title,content,"=============")#将数据存入数据库blog,i = Blog.objects.get_or_create(title=title,content=content)#print(blog,"--------------")return HttpResponse("添加文章成功") if i else HttpResponse("输入数据重复  请重新输入")else:return HttpResponse("请求方式有误")
#博客详情页
def detail(request,blog_id):id = Blog.objects.filter(id=blog_id).first()return render(request,'boke/detail.html',context={'id':id,})#博客列表页
def list(request):#获取数据中的对象list_all = Blog.objects.all()return render(request,'boke/list.html', context={'list_all':list_all,})
#删除博客
def delete(request,blog_id):Blog.objects.get(id=blog_id).delete()return redirect(reverse("boke:list"))
#编辑博客
def edit(request,blog_id):id = Blog.objects.filter(id=blog_id).first()if id:if request.method == "POST":title = request.POST.get("title")content = request.POST.get("content")Blog.objects.filter(id=blog_id).update(title=title,content=content)return redirect(reverse("boke:list"))else:return render(request, 'boke/edit.html', context={"id": id,})return HttpResponse("操作方式异常")

6-在boke.urls.py文件中配置路由

from django.urls import path
from . import views
app_name ='boke'
urlpatterns =[path('index/',views.index,name="index"),path('add/',views.add,name="add"),path('list/',views.list,name="list"),path('edit/<int:blog_id>/',views.edit,name="edit"),path('detail/<int:blog_id>/',views.detail,name="detail"),path('delete/<int:blog_id>/',views.delete,name="delete"),
]

7-在BK.templates模板文件夹下创建boke文件夹 然后在boke文件夹下分别创建base.html,add.html,index.html,list.html,detail.html,edit.html,

base.html 为模板 基类 其余html分别就继承base.html 以及在其基础上进行添加和修改

(1)templates/boke/base.html文件下代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>{% block title %}{% endblock %}</title>
</head>
<body>
{% block content %}{% endblock %}
</body>
</html>

(2)index.html为首页

{% extends 'boke/base.html' %}
{% block title %}博客首页{% endblock %}
{% block content %}
<table><tr><td><a href="{% url 'boke:add' %}">添加文章</a></td><td><a href="{% url 'boke:list' %}">文章列表</a></td></tr>
</table>
{% endblock %}


(3)add.html 添加文章

{% extends 'boke/base.html' %}
{% block title %}添加博客{% endblock %}
{% block content %}
<h1>添加新博客</h1><form action="" method="post">{% csrf_token %}标&nbsp;题:    <input type="text" placeholder="请输入标题" name="title">文章内容: <input type="text" placeholder="请输入文章内容" name="content"><input type="submit" value="发布博客"></form>
{% endblock %}


(4)list.html为文章列表

{% extends 'boke/base.html' %}
{% block title %}文章列表{% endblock %}
{% block content %}
<table><tr><td width="200px" height="50px">文章</td><td width="200px" height="50px">基本操作</td></tr>{% for list in list_all %}<tr><td><a href="{% url 'boke:detail' list.id  %}">{{ list.content }}</a></td><td><a href="{% url 'boke:edit' list.id %}">编辑博客</a><a href="{% url 'boke:delete' list.id %}">删除博客</a></td></tr>{% endfor %}
</table>
{% endblock %}


(5)detail.html 文章的详情页

{% extends 'boke/base.html' %}
{% block title %}博客详情页{% endblock %}
{% block content %}
<h1 style="color: saddlebrown">博客标题:{{ id.title }}</h1>
<h2 style="color: blue; font-size: 40px">文章内容:{{ id.content }}</h2>{% endblock %}


(6)edit.html 为文章编辑

{% extends 'boke/base.html' %}
{% block content %}
<h1 style="color: red;">编辑文章</h1>
<form action="" method="post">{% csrf_token %}标题: <input  width="200px" height="100px"type="text" placeholder="请输入标题" name="title" value="{{ id.title }}"><br>文章内容: <textarea  width="200px" height="100px"name="content" placeholder="请修改文章内容">{{ id.content }}</textarea><br><input type="submit" value="编辑博客" >
</form>
{% endblock %}



(7)最后是删除

django boke小案例的实现相关推荐

  1. Python 21 Django 实用小案例1

    实用案例 验证码与验证   KindEditor      组合搜索的实现 单例模式      beautifulsoup4 验证码与验证 需要安装Pillow模块 pip stall pillow ...

  2. python简单实用案例_Python 21 Django 实用小案例1

    8 9 10 {% csrf_token %}11 用户名: 12 密码: 13 验证码: 14 15 16 17

  3. 爬虫之基本原理及简单使用、请求库之requests库及小案例

    文章目录 1.基本原理及简单使用 1.1.定义 1.2.爬虫的基本流程 1.3.请求与响应 1.4.Request 1.5.Response 1.6.总结 2.请求库之requests库 2.1.基本 ...

  4. Python:通过一个小案例深入理解IO多路复用

    通过一个小案例深入理解IO多路复用 假如我们现在有这样一个普通的需求,写一个简单的爬虫来爬取校花网的主页 import requests import timestart = time.time()u ...

  5. iptables小案例,nat表应用

    2019独角兽企业重金招聘Python工程师标准>>> iptables小案例: 需求1: 只针对filter表,预设INPUT链DROP,其他两个链ACCEPT,然后针对192.1 ...

  6. 4.10/4.11/4.12 lvm讲解 4.13 磁盘故障小案例

    4.10/4.11/4.12 lvm讲解 操作流程: 磁盘分区-->创建物理卷-->划分为卷组-->划分成逻辑卷-->格式化.挂载-->扩容. 磁盘分区 注: 创建分区时 ...

  7. python开发微信小程序-Django微信小程序后台开发教程的实现

    1 申请小程序,创建hello world小程序 2 添加交互框和按钮 index. wxml cal {{ result }} index.wxss /**index.wxss**/ .input ...

  8. python程序实例教程基础-编程小案例

    编程小案例 本小节实现一个通讯录管理程序,通过这个案例来融会贯通之前所学习的知识,该程序使用到如下知识点: 条件选择 循环 列表 字典 键盘输入 屏幕输出 编写程序 addr-manage.py 实现 ...

  9. axios vue 回调函数_Vue 02 —— Vue 入门小案例~使用 Axios 中的GET、POST请求

    作为后端攻城狮,写前端代码是一种什么体验? 相信不少人和 @Python大星 一样,有写过前端代码的经历. 记录一下,Vue 框架开发中"啼笑皆非"的故事,非专业前端人员,该案例无 ...

最新文章

  1. Juniper SRX 常用命令
  2. lnmp.org + phpstorm + xdebug
  3. Centos 7 64位 minimal 最小化安装的系统中静默安装oracle 11g r2(无图形化安装)
  4. 从屌丝毕业生到三次优秀员工(腾讯三年工作感悟)
  5. boost::variant2模块实现默认构造相关的测试程序
  6. 一个小型数据库的核心组件
  7. 生成随机码,保存随机文件.
  8. 定时器mia是什么意思_MIA的完整形式是什么?
  9. 116_Power Pivot 先进先出原则库龄库存计算相关
  10. AOC萌新探索:搭建和体验在线AOC环境
  11. [CF718C] Sasha and Array
  12. 数据库的持续集成和版本控制[转自INFOQ]
  13. electron 改变窗体 大小_「Science子刊」约翰·霍普金斯大学创造灰尘大小设备,可协助药物在胃肠道停留24小时之久...
  14. dom操作节点之常用方法
  15. Chrome 启动参数
  16. 上海市建筑工程资料管理软件
  17. 智慧城市发力,区块链助力土木建设数据存储
  18. 微信与企业微信的十个区别
  19. html中spry的长度怎么更改,Dreamweaver中Spry区域功能说明
  20. centos 7系统Give root password for maintenance解决办法

热门文章

  1. rk809-code喇叭耳机调试分享
  2. 常见css样式居中方法
  3. 条件随机场介绍(5)—— An Introduction to Conditional Random Fields
  4. 神经网络入门基础知识 neural networks basics
  5. c语言循环结构常用语句,浅析C语言三种循环结构语句
  6. 华为OSPF多区域简单配置
  7. Mac下的ananconda死活找不到包的解决方法
  8. 如何渲染带有LightMix(灯光混合)信息的vrimg文件?
  9. 互联网大佬的“老赖”传说,前有贾跃亭、戴威,后有罗永浩、冯鑫
  10. js es10 新特性