Web框架开发-BBS项目预备知识

一、简介

博客系统(cnblog) https://www.cnblogs.com/

1.django ORM  (object relation mapping 对象关系映射)  表 = 类  对象 = 记录跨表查询  分组查询 annotate()   聚合查询  aggregate(*args, **kwargs)
2.bootstrap3.Ajax (jquery javascript) --- javascript 去写ajax  去写写登录注册 点赞评论用框架 底层要会!4.用户认证系统!auth user实现功能:
1、基于Ajax和用户认证实现登录验证---- 验证码 图片  滑动(插件)登录  注册 Ajax2、基于Ajax和form组件实现注册功能3、系统首页的布局表关系第一步:文章表:表头 内容, 发布时间用户表:一对多4、个人站点页面设计标签分类 归档(发布日期group by)分类表:一对多 和 文章表标签表:多对多 和 文章表5、文章详细页面模板继承文章表nid = models.AutoField(primary_key=True)
  title = models.CharField(max_length=50, verbose_name='文章标题')desc = models.CharField(max_length=255, verbose_name='文章描述')create_time = models.DateTimeField(verbose_name='创建时间', auto_now_add=True)content = models.TextField()comment_count = models.IntegerField(default=0)up_count = models.IntegerField(default=0)down_count = models.IntegerField(default=0)user = models.ForeignKey(verbose_name='作者', to='UserInfo', to_field='nid', on_delete=models.CASCADE)category = models.ForeignKey(to='Category', to_field='nid', null=True, on_delete=models.CASCADE)tags = models.ManyToManyField(to="Tag",through='Article2Tag',through_fields=('article', 'tag'),)def __str__(self):return self.title
6、基于Ajax实现文章点赞与踩灭

1

2

3

4

5

6

7

8

9

nid = models.AutoField(primary_key=True)

   user = models.ForeignKey('UserInfo', null=True, on_delete=models.CASCADE)

   article = models.ForeignKey("Article", null=True, on_delete=models.CASCADE)

   is_up = models.BooleanField(default=True)

   class Meta:

       unique_together = [

           ('article''user')

       ]

 

 7、基于Ajax实现评论框

1

2

3

4

5

6

7

8

9

10

nid = models.AutoField(primary_key=True)

    user = models.ForeignKey(verbose_name='评论者', to='UserInfo', to_field='nid', on_delete=models.CASCADE)</

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/779996.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FPGA Artix7 Bootloader App Python升级

文章目录 软硬环境复现官方 srec_spi_bootloader例子简介Vivado硬件部分存储划分Vitis 嵌入式 BootVitis 嵌入式 Appelf转换srec合并boot和app得到mcs文件下载测试过程分析 基础知识BIT MCS HEX BINBit SwappingSREC 文件格式Vivado约束 串口Boot地址划分链接脚本修改Github Li…

在银河麒麟系统中安装nginx

1.先下载nginx安装包&#xff0c;先去官网下载所需安装包 nginx: download https://nginx.org/en/download.html2.切换到/usr/local目录下面&#xff0c;上传nginx并解压tar -zxvf nginx-1.24.0.tar.gz cd /usr/local tar -zxvf nginx-1.24.0.tar.gz3.执行 ./configure 配置命…

五、基于KubeAdm搭建多节点K8S集群

如需查阅上一步骤,请点击下面链接:四、戴尔R630本地服务器Linux Centos7.9系统安装docker-ce-20.10.10-3.el7版本-CSDN博客文章浏览阅读727次,点赞12次,收藏13次。1、准备工作3、Linux Centos7.9系统的iDRAC远程管理、网络设置、SecureCRT远程登录终端、企业级静态ip地址配…

2024.3.29

1>总结keil5下载代码和编译代码需要注意的事项 在使用Keil5下载代码和编译代码时&#xff0c;需要注意以下事项&#xff1a; 配置工程参数&#xff1a;在打开工程前&#xff0c;确保正确配置了目标芯片类型、工具链等参数&#xff0c;以便于正确的编译和下载。 检查代码&a…

SpringMVC源码分析(八)--参数解析器

1.参数解析器介绍 参数解析器用于解析Handler方法参数,例如经常看到Handler方法签名中有HttpServletRequest、HttpServletResponse等对象,还有请求参数中有@RequestBody、@PathVariable等注解修饰的对象,这些对象都是经过参数解析器解析后注入的 SpringMVC中默认的参数解析…

HarmonyOS实战开发-使用Flex容器组件,实现弹性布局效果。

介绍 本篇Codelab是基于Flex容器组件&#xff0c;实现弹性布局效果。弹性布局的特点是页面元素的宽度按照屏幕分辨率进行适配调整&#xff0c;但整体布局不变。 相关概念 Flex组件&#xff1a;以弹性方式布局子组件的容器组件。Search组件&#xff1a;搜索框组件&#xff0c;…

一则关于Go的高级构建指北

本文将探索Golang高级构建技巧&#xff0c;从而有助于创建更高效的二进制文件。 构建选项 以下是 go build 命令最常用的一些选项&#xff1a; -o: 指定输出文件名。默认输出文件名是主软件包的名称&#xff0c;在 Windows 系统中会自动添加 .exe 后缀。-v: 详细输出。该选项…

/usr/lib/rpm/check-rpaths rpm打包失败解决

当前构建系统为 automake configure rpm [ %{buildarch} noarch ]QA_CHECK_RPATHS1case "${QA_CHECK_RPATHS:-}" in/usr/lib/rpm/check-rpaths ******************************************************************************* * * WARNING: check-rpaths dete…

4、Cocos Creator 动画系统

目录 1、Clip 参数 2、动画编辑器 3、基本操作 更改时间轴缩放比例 移动显示区域 更改当前选中的时间轴节点 播放 / 暂停动画 修改 clip 属性 快捷键 4、模拟实验 5、动画事件 6、注意事项 参考 Animation 组件是节点上的一个组件。Clip 动画剪辑就是一份动画的声…

vue源码解析—— watch/computed的实现逻辑和区别

watch 和 computed 是 Vue 中的两个重要的响应式属性&#xff0c;它们在实现机制和使用上存在一些区别。 watch&#xff1a;用于监听数据的变化&#xff0c;并在数据变化时执行回调函数。可以使用 deep 配置项来开启深度监听&#xff0c;监听数据的子属性变化。可以使用 immedi…

基于51单片机和MAX1898的智能手机充电器设计

**单片机设计介绍&#xff0c;基于51单片机和MAX1898的智能手机充电器设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于51单片机和MAX1898的智能手机充电器设计概要 一、引言 随着智能手机的普及&#xff0c;其电池续航…

网络安全接入认证-802.1X接入说明

介绍 802.1X是一个网络访问控制协议&#xff0c;它可以通过认证和授权来控制网络访问。它的基本原理是在网络交换机和认证服务器之间建立一个安全的通道&#xff0c;并要求客户端提供身份验证凭据。如果客户端提供的凭据是有效的&#xff0c;交换机将开启端口并允许访问。否则&…

通讯录改进———动态版本

在上一篇博客中讲完了动态内存分配&#xff0c;这时候我们就可以改进之前写的通讯录了&#xff0c;可以将其升级为动态内存的版本&#xff0c;既不用担心联系人满了&#xff0c;也不用担心内存浪费太大。 要将其改为动态版本主要是两件事&#xff0c;首先初始化的时候我们要动…

qt完成对话框提示

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//去掉头部this->setWindowFlag(Qt::FramelessWindowHint);//去掉空白this->setAttribute(Qt::WA_Transl…

Go的数据结构与实现【Queue】

介绍 与栈一样&#xff0c;队列也是最基本的数据结构之一。队列也是值的一种容器&#xff0c;其中值的插入和删除遵循“先进先出”&#xff08;First-In-First-Out, FIFO&#xff09;的原则⎯⎯也就是说&#xff0c;每次删除的只能是最先插入的值。 实现 队列的抽象数据类型…

《数据结构学习笔记---第六篇》---栈和队列的实现

目录 1.栈 1.1栈的概念及结构 1.2栈的实现 2.队列 2.1队列的概念及结构 ​2.2队列的实现 3.顺序栈的具体实现 3.1建头文Stack.h” 3.2创建具体接口实现文件Stack.c 3.2.1初始化 3.2.2入栈出栈 3.2.4判空 3.2.5栈的大小 3.2.6销毁栈 3.3主函数的实现 4.链队的具体实现…

linux 没有rc.local文件的解决方法

新的Linux发行版已经没有rc.local文件了。因为已经将其服务化了。 1.设置rc-local.service sudo vim /etc/systemd/system/rc-local.service内容如下&#xff1a; [Unit]Description/etc/rc.local CompatibilityConditionPathExists/etc/rc.local[Service]TypeforkingExecSt…

webpack-dev-server 如何直接用IP打开

当你需要使用IP来访问服务器时&#xff0c;可能需要对 webpack-dev-server 进行相关设置&#xff1b; 当你使用PD虚拟机在Windows上调试时&#xff0c;可能会用到&#xff1b; 一、设置 host 通过webpack.config.js设置 devServer: {host: 0.0.0.0, }通过CLI设置 webpack-dev-s…

【pytest】测试数据存储在 Excel 或 TXT 文件中,如何参数化

如果测试数据存储在 Excel 或 TXT 文件中&#xff0c;你可以使用外部库来读取这些数据&#xff0c;并将其转化为参数化测试所需的格式。下面我将分别展示如何从这两种文件中读取数据&#xff0c;并用于参数化测试。 从 Excel 文件中读取测试数据 你可以使用 pandas 库来读取 …

SAMRTFORMS 转换PDF 发送邮件

最终成果&#xff1a; *&---------------------------------------------------------------------**& Report ZLC_FIND_EXIT*&---------------------------------------------------------------------**&根据T-CODE / 程序名查询出口、BADI增强*&-------…