03 2024 档案
摘要:【一】editor 引入文件 <link rel="stylesheet" href="{% static 'plugins/Editor/editor/css/editormd.css' %}"> <script src="{% static 'plugins/Editor/editor/edit
阅读全文
摘要:【一】公共部分 【1】后端 def backend(request, *args, **kwargs): article_obj_all = Article.objects.filter(blog=request.user.blog) category_obj_all = CategoryClass
阅读全文
摘要:【一】后端 class ArticleAdd(View): def get(self,request, *args, **kwargs): # article_obj_all = Article.objects.filter(blog=request.user.blog) category_obj_
阅读全文
摘要:【二】前端 <div class="container-fluid"> <div class="row"> <div class="col-md-2"> {% load CommonInclusionTags %} {% backend_left request %} </div> <div cla
阅读全文
摘要:【一】前端基本页面 下载gif文件 <div class="media"> <div> <div class="media-heading pull-right"> 随笔 - {{ article_data_obj.count }} 点赞数 - {{ article_obj.up_num }} 点踩
阅读全文
摘要:【一】需求 点击文章标题链接跳转到文章详情页上面 【二】路由配置 path('<slug:username>/article/', include('article.urls')), path('<int:pk>/',article_detail,name='article_detail') 【三】
阅读全文
摘要:【一】前端 {% extends 'home.html' %} {% load static %} {% block content_main %} <style> th, td { text-align: center; } </style> <h1 class="text-center">广告信
阅读全文
摘要:【1】封账分页器功能 class Pagination(object): def __init__(self, current_page, all_count, per_page_num=2, pager_count=11): """ 封装分页相关数据 :param current_page: 当前
阅读全文
摘要:【1】需求分析 【2】路由映射 这个URL模式表示一个路由,它匹配一个以/开头的URL,后面跟着一个可选的username参数。 urlpatterns = [ path('admin/', admin.site.urls), path('',home,name="home"), path('<sl
阅读全文
摘要:【一】css文件 【1】创建css文件 h3,h4{ color:red!important; } 【2】后端 def site(request, username, *args, **kwargs): blog_obj = Blog.objects.get(userinfo__username=u
阅读全文
摘要:【一】统计分类、标签下的文章数目 【1】模板标签导入 from django.db.models import Count 【2】后端( 对文章分类标签进行归档分类) 使用 annotate 统计 @register.inclusion_tag("inclusion_tags/article_lef
阅读全文
摘要:【一】路由转换器 ,slug:username 是一种路径转换器(Path Converter),它不是一个正则表达式本身,但其内部使用了正则表达式来匹配符合slug格式的字符串。Slug通常是指简洁、可读性强且不包含特殊字符的URL友好标识符,常常用于表示博客文章的标题或者用户自定义的别名等。 在
阅读全文
摘要:【一】后台美化 pip install django-simpleui INSTALLED_APPS = [ 'simpleui', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'djan
阅读全文
摘要:【一】表分析 表设计 【二】项目搭建 django项目搭建 【三】建表 表的创建 【四】用户相关功能 用户的注册、登录、修改、注销以及公共方法 【五】admin管理后台 admin后台管理和定制 【六】分页器 分页器 - -半城烟雨 - 博客园 (cnblogs.com) 【七】个人站点搭建 【1】
阅读全文
摘要:【零】公共方法 【1】公共响应对象 lib/CommonResponse.py from django.http import JsonResponse def CommonResponse(code=200, message="请求成功!", **kwargs): """ 封装一个通用的响应函数
阅读全文
摘要:【零】创建公共表 lib/CommonModel.py from django.db import models class CommonModel(models.Model): create_time = models.DateTimeField(auto_now_add=True, verbos
阅读全文
摘要:本次项目命名为BulletinBoardSystem File > New Project >Django >定义配置项 > CREATE 【二】创建APP 【1】创建APP 本次项目拆分成用户,站点和文章三部分 # 创建用户APP python manage.py startapp user #
阅读全文
摘要:【一】表分析概览 【1】项目表设计思路 先确定表 再确定字段 最后确定表与表之间的关系 【2】表分析 (1)用户表 继承AbstractUser 手机号 头像 注册时间 一个用户只能对应一个个人站点:一对一关系 (2)个人站点表 站点名称 例如 https://www.cnblogs.com/dre
阅读全文
摘要:【一】Django配置文件介绍 Django框架默认提供给我们一个配置文件 在我们项目根目录下的 setting.py 文件中,在里面我们可以看到很多的配置项 并且我们能够自主的添加相应的配置 但是其实这个文件只是Django暴露出来给我们的一个接口文件,在Django内部还存在一个更加强大的配置文
阅读全文
摘要:【一】跨站请求伪造介绍 【1】引入 CSRF(Cross-Site Request Forgery)跨站请求伪造是一种常见的网络攻击方式。 攻击者通过诱导受害者访问恶意网站或点击恶意链接 将恶意请求发送到目标网站上 利用受害者在目标网站中已登录的身份来执行某些操作 从而达到攻击的目的。 【2】举例
阅读全文
摘要:【一】Auth模块引入 我们在创建一个Django项目之后,直接执行数据库迁移命令会自动生成很多表 django_session auth_user Django在启动之后就可以直接访问admin路由,需要输入用户名和密码,数据参考的就是auth_user表,并且必须是管理员用户才能进入 【二】创建
阅读全文
摘要:【一】引入 我们在Django的配置文件中,里面的中间件配置文件,虽然使用逗号分开,但是可以做到直接引入某个模块 MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.midd
阅读全文
摘要:【一】引言 给类视图函数添加装饰器需要借助第三方模块 from django.utils.decorators import method_decorator 【二】三种添加装饰器方式 【1】给类方法加装饰器 指名道姓的装 -- 放在方法上面 (1)路由 path('login_view/', vi
阅读全文
摘要:【一】Django中间件介绍 【1】什么是Django中间件 Django中间件是一个轻量级、可重用的组件,用于处理Django请求和响应的过程。 它提供了对请求和响应进行全局处理的机制,可以在请求达到视图之前进行预处理或在响应返回给客户端之前进行后处理。 中间件是按照顺序依次执行的,每个中间件都可
阅读全文
摘要:Django框架之Cookie和Session 【一】为什么要用cookie和session 【1】什么是静态网页 含义:一个网页的内容是HTML代码编写的,文字、图片等内容均可通过HTML代码指定了 优势:加载速度快,编写简单 劣势:可维护性差,扩展性差,不能根据URL显示不同的内容;例如:在UR
阅读全文
摘要:【一】引入 声明:以下的Form、表单等术语都指的的广义的Django表单。 Form要么是绑定了数据的,要么是未绑定数据的。 如果是绑定的,那么它能够验证数据,并渲染表单及其数据,然后生成HTML表单。如果未绑定,则无法进行验证(因为没有数据可以验证!),但它仍然可以以HTML形式呈现空白表单。
阅读全文
摘要:【一】引入 如果你正在构建一个数据库驱动的应用,那么你可能会有与Django的模型紧密映射的表单。 比如,你有个BlogComment模型,并且你还想创建一个表单让大家提交评论到这个模型中。 在这种情况下,写一个forms.Form类,然后在表单类中定义字段,这种一般创建表单的做法是冗余的,因为你已
阅读全文
摘要:【一】切入点 切入点form_obj.is_valid() def is_valid(self): """Return True if the form has no errors, or False otherwise.""" return self.is_bound and not self.e
阅读全文
摘要:【一】什么是钩子函数 在forms组件中 钩子函数(Hooks)是用来在特定事件发生时执行自定义逻辑的函数。 它们提供了一种创建交互性和动态行为的方式,并可以用于处理表单的各种状态和数据。 【二】常见的钩子函数 【1】onInputChange 当输入框的值发生变化时触发。 你可以通过这个钩子函数获
阅读全文
摘要:【一】定义form组件 forms.py # 定义form类 class MyForm(forms.Form): # username : 字符串类型 最小三位,最大八位 username = forms.CharField(max_length=8, min_length=3, label="用户
阅读全文
摘要:【一】引入 forms组件只会帮我们渲染用户输入的标签(input/select...) 【二】书写forms组件 forms.py from django import forms # 定义form类 class MyForm(forms.Form): # username : 字符串类型 最小三
阅读全文
摘要:【零】引入 创建Form类时主要涉及到 【字段】 和 【插件】 字段用于对用户请求数据的验证 插件用于自动生成HTML; 【一】Field.clean(value) 注意:这里说的是字段Field的clearn方法,不是表单Form的clean方法。 虽然表单字段的Field类主要使用在Form类中
阅读全文
摘要:【一】FORM介绍 【1】引入 我们之前在HTML页面中利用form表单向后端提交数据时 都会写一些获取用户输入的标签并且用form标签把它们包起来。 与此同时我们在好多场景下都需要对用户的输入做校验 比如校验用户是否输入 输入的长度和格式等正不正确。 如果用户输入的内容有错误就需要在页面上相应的位
阅读全文
摘要:Django框架基础之批量插入 【一】引入 项目需求: 浏览器中访问django后端某一条 url(如:127.0.0.1:8080/index/) 实时朝数据库中生成一千条数据并将生成的数据查询出来 并展示到前端页面 【二】创建模型表 class Book(models.Model): title
阅读全文
摘要:【一】前后端传输数据的编码格式(contentType) 主要研究POST请求数据的编码格式 因为GET请求数据就是直接放在url后面的 可以朝后端发送post请求的方式 form请求 ajax请求 【1】form表单 前后端传输数据的格式 urlencoded formdata json <for
阅读全文
摘要:【一】引入 针对上一小节批量插入的数据 我们在前端展示的时候发现一个很严重的问题 一页展示了所有的数据,数据量太大,查看不方便 针对数据量大但又需要全部展示给用户观看的情况下 我们统一做法都是做分页处理 【二】分页推导 【1】理论 首先我们需要明确的时候 get请求也是可以携带参数的 所以我们在朝后
阅读全文
摘要:【一】SweetAlert 【一】介绍 SweetAlert 是一个基于 JavaScript 的弹窗插件,用于创建美观而且高度可定制的弹窗效果。 SweetAlert 提供了多种弹窗风格和动画效果,可以用于警告、确认、提示和错误等不同的场景。 【二】特点 (1)美观可定制 SweetAlert 提
阅读全文
摘要:【一】前言 什么意思呢? 就是我的前段想拿到由ORM得到的数据库里面的一个个用户对象 我的后端想直接将实例化出来的数据对象直接发送给客户端 那么这个时候,就可以用Django给我们提供的序列化方式 【二】案例 在前端获取到后端用户表里面的所有数据,并且格式是列表套字典 【0】创建模型表 from d
阅读全文
摘要:【零】JSON知识储备 【1】JSON数据介绍 JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式 JSON 独立于语言 * JSON 具有自我描述性,更易理解 JSON 使用 JavaScript 语法来
阅读全文
摘要:【一】前端 check_book.html {% load static %} <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="{% static 'js/bootstrap.min.j
阅读全文
摘要:【一】前言 Django自带的sqlite3数据对日期格式不敏感,处理的时候容易出错 【1】测试脚本 测试脚本 当我们只想要测试Django中的某一个py文件的内容时,我们可以不需要书写前后端交互的形式,而是直接写一个测试脚本即可 测试环境的准备 在测试文件中书写下面内容 这内容其实就是最外部 ma
阅读全文
摘要:【一】模板层 前端页面,如何向前端页面渲染数据 【1】模版渲染的步骤 # 第一步 在视图函数中 在render对象中添加一个参数 locals() # locals() > 获取到当前的名称空间 # 传给了 render 函数中的第三个参数 context 参数 上下文对象 def register
阅读全文
摘要:【一】JsonResponse 【1】json模块序列化 import json from django.shortcuts import HttpResponse def json_data(request): user_dict = { "username": "hope你好", 'age':
阅读全文
摘要:【一】路由系统 【1】URL配置 URL调度器 | Django 文档 | Django (djangoproject.com) URL配置(URLconf)就像Django 所支撑网站的目录。 它的本质是URL与要为该URL调用的视图函数之间的映射表。 你就是以这种方式告诉Django,对于这个U
阅读全文
摘要:【一】配置数据库 【1】默认数据库 在 settings.py 文件中有一个配置项就是配置数据库的 但是Django默认的数据库是sqlite3数据库 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME':
阅读全文
摘要:【一】request对象属性和方法 【1】request.method 获取发起请求的请求方式 get请求携带的数据是由大小限制的 post请求携带的请求参数没有限制 【2】request.POST 获取用户输入的请求数据,但不包含文件 返回的是:大写字符串 【3】get/getlist get 只
阅读全文
摘要:【一】静态文件配置说明 【1】模版文件 我们将html文件默认都放在templates文件夹下 【2】资源文件 我们将网站所使用的静态文件默认都放在static文件夹下 静态文件: 前段已经写好,能直接使用的文件 网站写好的JS文件 网站写好的CSS文件 网站用到的图片文件 第三方框架 ... 拿来
阅读全文
摘要:【一】Django项目如何添加新功能 启动django项目之后 如何添加更多的功能 回想自己编写的web框架 如果要添加功能 就去urls.py和views.py 【1】添加URL映射 from django.contrib import admin from django.urls import
阅读全文
摘要:【一】Django框架下载 【1】pip安装 使用 pip 命令安装指定版本的第三方包 pip3 install django==3.2.12 如果之前下载了其他版本不用管 Python解释器会将旧版本卸载,安装指定的版本,即自动替换!!! 【2】安装注意事项 计算机名称不要出现中文 python解
阅读全文
摘要:【一】网络框架及MVC架构 【1】网络框架 所谓网络框架是指这样的一组Python包,它能够使开发者专注于网站应用业务逻辑的开发,而无须处理网络应用底层的协议、线程、进程等方面。这样能大大提高开发者的工作效率,同时提高网络应用程序的质量。 在目前Python语言的几十个开发框架中,几乎所有的全栈网络
阅读全文
摘要:【零】引入 该框架已经帮我们写好了很多页面样式,如果需要使用,只需要下载对应文件 直接CV拷贝即可 在使用Bootstrap的时候,所有的页面样式只需要通过修改class属性来调节即可 【一】什么是Bootstrap Bootstrap是一个开源的前端框架,用于快速构建响应式和移动设备优先的网站或应
阅读全文