07 2018 档案
摘要:昨日内容回顾 1. 内容回顾 1. VueX VueX分三部分 1. state 2. mutations 3. actions 存放数据 修改数据的唯一方式 异步操作 修改state中数据的步骤: 1. 页面上交互 触发数据的变化 2. 去后端获取新的数据(异步操作 ajax请求) 3. disp
阅读全文
摘要:昨日内容回顾 1. 页面的布局 Vue中使用Bootstrap搭页面 1. 安装 1. npm install bootstrap@3.3.7 -S 2. 使用 1. import 'bootstrap/dist/css/bootstrap.min.css' 2. 组件的使用 1. 组件的定义 1.
阅读全文
摘要:昨日内容回顾 1. 组件间的传值 1. bus --> 空Vue对象 通过向bus对象抛出自定义事件的方式在组件间传递信息 2. 注意事项: 1. bus.$on()应该在组件mounted(挂载在页面上)的时候就执行 2. this对象 2. Vue实例的生命周期钩子函数(8个) 1. befor
阅读全文
摘要:昨日内容回顾 0. 组件注意事项!!! data属性必须是一个函数! 1. 注册全局组件 Vue.component('组件名',{ template: `` }) var app = new Vue({ el: '#app' }) 2. 注册局部组件 var app = new Vue({ el:
阅读全文
摘要:昨日内容回顾 1. Vue使用 1. 生成Vue实例和DOM中元素绑定 2. app.$el --> 取出该vue实例绑定的DOM标签 3. app.$data --> 取出该vue实例绑定的data属性 2. 模板语法 1. {{name}} --> 在标签中间引用data属性中的变量 2. v-
阅读全文
摘要:一、sorted面试题 面试题: [11, 33, 4, 2, 11, 4, 9, 2] 去重并保持原来的顺序 答案1: list1 = [11, 33, 4, 2, 11, 4, 9, 2] ret = set(list1) list2 = [] for i in list1: if i not
阅读全文
摘要:BBS项目内容回顾 1. 登陆页面 1. 验证码 1. PIL(Pillow) 2. io 2. ORM 1. 增删改查 3. AJAX $.ajax({ url: '', type: '', data: {}, success:function(res){ console.log(res) },
阅读全文
摘要:一、ajax登录示例 新建项目login_ajax 修改urls.py,增加路径 from app01 import views urlpatterns = [ path('admin/', admin.site.urls), path('login/', views.login), path('i
阅读全文
摘要:一、上传文件 上传一个图片 使用input type="file",来上传一个文件。注意:form表单必须添加属性enctype="multipart/form-data" 在views.py视图函数中,获取文件对象,必须使用request.FILES.get 新建项目upload_file,在项目
阅读全文
摘要:昨日内容回顾 第一部分:django相关 1.django请求生命周期 1. 当用户在浏览器中输入url时,浏览器会生成请求头和请求体发给服务端 请求头和请求体中会包含浏览器的动作(action),这个动作通常为get或者post,体现在url之中. 2. url经过Django中的wsgi,再经过
阅读全文
摘要:一、django 请求生命周期 流程图: 1. 当用户在浏览器中输入url时,浏览器会生成请求头和请求体发给服务端请求头和请求体中会包含浏览器的动作(action),这个动作通常为get或者post,体现在url之中. 2. url经过Django中的wsgi,再经过Django的中间件,最后url
阅读全文
摘要:一、子评论 必须点击回复,才是子评论!否则是根评论点击回复之后,定位到输入框,同时加入@评论者的用户名 定位输入框 focus focus:获取对象焦点触发事件 先做样式。点击回复之后,定位到输入框,加入被评论的用户名 给回复的a标签加一个class=reply_btn,关闭a标签的跳转,使用jav
阅读全文
摘要:一、点赞和踩灭 样式 先来做样式,修改article_detail.html,增加div_digg的div {% extends "base.html" %} {% block content %} <div class="article_info"> <h4 class="text-center"
阅读全文
摘要:一、个人主页 随笔分类 需求:查询当前站点每一个分类的名称以及对应的文章数 完成这个需求,就可以展示左侧的分类 它需要利用分组查询,那么必须要会基于双下划线的查询。 基于双下划线的查询,简单来讲,就是用join。将多个表拼接成一张表,那么就可以单表操作了! 表关系图 图中箭头开始的英文字母表示关联字
阅读全文
摘要:一、博客系统分析 数据库的构建 首先,我们分析一个博客系统的功能: 一个博客可以有多个标签(多对多) 一个博客可以有多条评论(一对多) 一个博客只可以有一个类别(多对一) 接下来,我们分析关系的属性: 博客:标题,作者,内容,发布时间,分类(外键),标签(多对多)等 标签:标签名 类别:分类名 评论
阅读全文
摘要:一、Django的用户认证组件 用户认证 auth模块 在进行用户登陆验证的时候,如果是自己写代码,就必须要先查询数据库,看用户输入的用户名是否存在于数据库中; 如果用户存在于数据库中,然后再验证用户输入的密码,这样一来就要自己编写大量的代码。 事实上,Django已经提供了内置的用户认证功能。 在
阅读全文
摘要:一、Django组件-forms组件 forms组件 django中的Form组件有以下几个功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 校验字段功能 之前写的视图函数,提交的数据,没有做校验,就添加到数据库里面了。这样是不对的!
阅读全文
摘要:一、图书管理系统 完整代码链接: https://github.com/py3study/bms_multi 本项目使用session来实现一个简单的图书管理系统 未登录不允许访问后台: 直接访问后台页面,会有提示: http://127.0.0.1:8000/books 访问首页: 导航栏下面是一
阅读全文
摘要:昨日内容回顾 1 json 轻量级的数据交换格式 在python 序列化方法:json.dumps() 反序列化方法:json.loads() 在JS中: 序列化方法:JSON.stringfy() 反序列化方法:JSON.parse() 2 ajax $.ajax({ url:"", type:"
阅读全文
摘要:昨日内容回顾 基于对象的跨表查询 正向查询:关联属性在A表中,所以A对象找关联B表数据,正向查询 反向查询:关联属性在A表中,所以B对象找A对象,反向查询 一对多: 按字段:xx book > publish < 按表名小写__字段名。比如publish__name 多对多: 正 按字段:xx bo
阅读全文
摘要:昨日内容回顾 # 一对多的添加方式1(推荐) # book=Book.objects.create(title="水浒传",price=100,pub_date="1643-4-12",publish_id=1) # print(book.title) # 一对多的添加方式2 # publish必须
阅读全文