该帖子 车型将拥有一个信息 场,这将是用于存储后答复的文本,在创建 日期和时间字段主要用来订购帖子 一内主题 ,一个在更新的 日期和时间栏通知用户 何时以及是否编辑了给定的帖子 。...类图帖子和用户关联一个帖子必须有一个并且只有一个用户与:创建者( 1)相关联。一个用户可能有很多或没有 帖子( 0..*)。...线框主题 图 6:Boards 项目线框,列出了 Django board 中的所有主题。 这里我们有两条主要路径:用户点击“新话题”按钮创建新话题,或者用户点击话题查看或参与讨论。...在 Post模型中,该 created_at字段有一个可选参数,auto_now_add设置为 True。这将指示 Django 在 Post创建对象时设置当前日期和时间。...如果我们不为模型指定主键,Django 会自动为我们生成它。所以我们现在很好。在下一节中,您将更好地了解它是如何工作的。 迁移模型 下一步是告诉 Django 创建数据库,以便我们可以开始使用它。
今天学习如何使用基于类的视图来创建,更新和删除帖子。一旦我们习惯使用这种方式会非常方便。 接下来开始: ?...修改django_project/blog/views.py,增加帖子的增删改查视图类方法: ? ? 修改django_project/blog/urls.py,添加帖子相关视图url规则: ?...在django_project/blog/templates/blog下新建post_form.html帖子新建和更新表单: ?...修改在django_project/blog/templates/blog/home.html,添加电子帖子标题导航链接和用户头像: ?...输入帖子内容和标题然后提交: ? ? 点击更新按钮进入更新页面,输入更新内容提交: ? ? 点击删除按钮跳转到删除确认页面: ? 点击确认可删除。今天就到这里下节见!
例如,在链接元素() 上使用btn类,它将看起来像一个按钮,使用btn-primary可以把链接显示成暗蓝色按钮。...这里另外有一个bootstrap.min.css,它是压缩版的bootstrap.css。 被称为压缩版,是因为它没有空格和注释,减小了文件尺寸。 它将在你的项目完成时使用,为发布项目准备的。...自定义Bootstrap 想象一下,一个网站,所有的网站都是用Bootstrap构建的,看起来和感觉都一样。无聊,对吧?幸运的是,我们有能力改变我们使用的任何框架的默认样式。...我们将使用它展示如何对其默认设计进行一些更改: 从这个按钮上删除圆角 改变填充量 调整字体大小 改变背景颜色 让我们使用开发工具来检查这个按钮。...注意,我们使用了Bootstrap类btn和btn - primary来覆盖CSS样式。从此以后,每当您使用Bootstrap的按钮组件时,它将会有一个类似于上图的更改样式。
1.Django 说到python,大家应该都会的差不多,平时写个小脚本,写个小请求都不在话下。但是如何用python写一个web平台呢?这里我们就需要用到django。...django你可以理解为就是一个pip能下载的第三方框架,然后你在它这个框架内去填东西,不出意外的话,一小时以内,你就能搭建一个自己的平台了,虽然只是第一个页面,没啥美感可言。...比如你要设计让用户点击这个按钮就提示xxx,这种动作 就需要靠js了。jquery是在js的基础上进行的又一次封装,使用起来简单一些。...,都会在你用django命令创建一个项目之后自动给你创建好。...如何跟用户交互,界面如何设计 等等都需要考虑。 10.一定的架构和算法能力 如果你不想你的整个平台项目都摇摇欲坠,运行个功能卡的要死,各种异常报错,维护和修改起来比开发时候还难。
19.4 小结 在本章中,你学习了如何使用表单来让用户添加新主题、添加新条目和编辑既有条目。接下 来,你学习了如何实现用户账户。...你让老用户能够登录和注销,并学习了如何使用Django提供的 表单UserCreationForm让用户能够创建新账户。...我们需要让django-bootstrap3包含jQuery,这是一个JavaScript库,让你能够使用Bootstrap模板 提供的一些交互式元素。...在6处,我们使用了django-bootstrap3的一个自定义模板标签,它让Django包含所有的 Bootstrap样式文件。...在2处,这个模板定义了一个按钮,它将在浏览器窗口太窄、无法水平显示整个导航栏时显 示出来。如果用户单击这个按钮,将出现一个下拉列表,其中包含所有的导航元素。
PS: API(应用程序编程接口)为开发人员提供了与应用程序数据库交互的接口。 2. Django项目配置 首先在本地为我们的代码创建一个新的目录。...点击帖子旁边的“+ Add”按钮,输入一些新的内容,例如下图所示。 ? 到此,我们已经完成了Django部分,由于我们本篇示例,是为了创建一个API服务,所以我们不需要创建模板和视图。...在本例中,我们将暴露所有字段,包括id,这是Django的主键,由Django自动添加到所有数据库记录。 4、接下来,我们需要创建view。...正如Django有基于类的视图一样,DRF也有我们可以使用的通用视图。例如,本示例中,我们定义一个列出所有博客文章和一个文章内容详细视图以及更新文章内容的视图,脚本如下所示。...在详细视图中,您可以使用“Delete”按钮来删除内容,“Put”来更新内容,“Get”可以像以前一样获取它。
,在第三个框中自动填写两数之和 咱们这里是 jQuery 的 ajax,别忘了先引入 jQuery 准备工作 新建一个项目,完成基本配置 因为要用到 post 请求,所以先暂时把 settings...btn-primary" id="button1">计算 {# 1.为了能够获取到对应输入框和按钮以及输入框的值...,放在 id 为 res 的 input 里 #} $.ajax({ {# 3.Jquery 的 ajax,需要下面几个参数,记得写上(Ajax 的括号内是一个大括号,然后再写的参数)...json def reg(request): user_list = models.User.objects.all() # 将所有的数据都组织成一个符合 json 格式的一个个的字典...一般第三方通用的文件都会新建一个 utils 文件夹,然后把 python 代码 放到里面 后端 创建文件夹与文件,把分页代码放进去,导入过来,使用 app01/utils/mypage.py
示例一 文件结构 假设你已经创建好了一个Django项目和一个App,部分结构如下: mysite myapp |___views.py |___models.py |___forms.py |...和ajax进行数据通信的大致原理如下: 当我们点击这个button后,触发js代码,然后ajax会将必要信息包装好,即 url:这个url是在urls.py文件中已经注册好的,而且它与views.py中的一个函数进行了绑定...其他例子(转载) 以下内容转载自Django基础之ajax django+ajax基础使用 模版页面 index.html <button...('loading');//按钮显示为过渡状态 $.post("{% url 'run_ajax' %}",{'content':content,"type":"encode"},...btn.button('loading');//按钮显示为过渡状态 $.getJSON('/search/',{"q":q},function(ret){
这节我们使用Django的model创建数据库表,以及如何使用Django ORM查询数据库并过滤结果。接下来开始: ?...在django_project文件夹命令行下执行python manage.py makemigrations 创建迁移: ?...>>> Post.objects.all() #创建一个帖子 并保存到数据库 >>> post_1 = Post(title='Blog 1',content='First...content',author=user) >>> post_1.save() #查询 >>> Post.objects.all() ]> #在创建一个帖子...>>> user.post_set.all() , ]> #为该用户创建帖子数据 >>> user.post_set.create
/a/@href')[0] print(a_text) print(a_href) 2.1 案例 需求:爬取百度贴吧所有帖子图片(美女吧) 此处将贴吧置顶的帖子以及一些广告帖子给过滤掉,...如果我们尝试了各种手段后,任然爬取不到数据,就可以使用selenium,如果还是爬取不到,那么就真的获取不到了。 selenium(硒) ,可以简单的理解为一个测试工具,但其功能不止如此。...jQuery:Query是一个快速、简洁的JavaScript框架,封装了JavaScript常用的功能代码。...4.4Selenium Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,Selenium 可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器...b.简化模拟登陆,直接使用浏览器加载js。 2.如何使用: a.导入selenium相关的模块。 b.创建浏览器驱动对象。 c.使用驱动对象进行相关操作。 d.退出。
AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”。...即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML,现在更多使用json数据)。...---- 具体请看链接 https://blog.driverzeng.com/zenglaoshi/4507.html 创建项目 ---- 基本操作 from django.shortcuts import...JsonResponse,返回的直接是一个对象,前端不用再转类型了可以直接使用。...2.在前端加上dataType:'json',返回的内容也是一个对象,前端也可以直接使用。
即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML,现在更多使用json数据) 同步交互:客户端发出一个请求后,需要等待服务器响应结束后,才能发出第二个请求...优点: AJAX使用Javascript技术向服务器发送异步请求 AJAX无须刷新整个页面 创建一个新的Django项目: 目录结构如下: ?...修改urls.py文件,添加一个index路径 from django.contrib import admin from django.urls import path from app import...在项目目录下面创建一个static的文件夹 修改settting.py文件,添加内容如下: STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static...") ] 创建一个jquery.min.js文件,把jquery的内容复制进去就好 在templates模版下,创建index,html文件,内容如下: <!
Ajax简介 AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”。...即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML,现在更多使用json数据) 同步交互:客户端发出一个请求后,需要等待服务器响应结束后,才能发出第二个请求...优点: AJAX使用Javascript技术向服务器发送异步请求 AJAX无须刷新整个页面 创建一个新的Django项目: 目录结构如下: ?...在项目目录下面创建一个static的文件夹 修改settting.py文件,添加内容如下: STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static...") ] 创建一个jquery.min.js文件,把jquery的内容复制进去就好 在templates模版下,创建index,html文件,内容如下: <!
Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式、快速动态网页应用的网页开发技术,无需重新加载整个网页的情况下...由于用 jQuery 实现 ajax 比较简单,因此接下来的代码引用jQuery库实现Ajax,另外使用Django作为框架。 其中jQuery可以手动下载放到本地文件夹中,也可以引用下面的语句。...的div将展示Ajax数据 (document).ready(function(){})指页面其他元素加载完成后开始加载Ajax数据,此时,浏览器不会有加载条和转圈的情况出现。...一个被完整读入的页面与一个已经被动态修改过的页面之间的可能差别非常微妙;用户通常都希望单击后退按钮,就能够取消他们的前一次操作,但是在Ajax应用程序中,却无法这样做。...不过开发者已想出了种种办法来解决这个问题,HTML5之前的方法大多是在用户单击后退按钮访问历史记录时,通过创建或使用一个隐藏的IFRAME来重现页面上的变更。
Redis(60 秒) 用户登录成功(验证用户名、密码、验证码),生成登录凭证且设置状态为有效,并将登录凭证存入 Redis 注意:登录凭证存在有效期,在所有的请求执行之前,都会检查凭证是否有效和是否过期...” 可以看到帖子的置顶和加精按钮并执行相应操作 “管理员” 可以看到帖子的删除按钮并执行相应操作 “普通用户” 无法看到帖子的置顶、加精、删除按钮,也无法执行相应操作 支持按照 “发帖时间” 显示 支持按照...) 「优化网站性能」 使用本地缓存 Caffeine 缓存热帖列表以及所有用户帖子的总数 ?...,在所有的请求执行之前,都会检查凭证是否有效和是否过期,只要该用户的凭证有效并在有效期时间内,本次请求就会一直持有该用户信息(使用 ThreadLocal 持有用户信息) 勾选记住我,则延长登录凭证有效时间...分页显示所有的帖子 支持按照 “发帖时间” 显示 支持按照 “热度排行” 显示(Spring Quartz) 将热帖列表和所有帖子的总数存入本地缓存 Caffeine(利用分布式定时任务 Spring
如它所言,我们确实还没有发布任何文章,本节我们将使用 Django 自带的 Admin 后台来发布我们的博客文章。...创建 Admin 后台管理员账户 要想进入Django Admin 后台,首先需要创建一个超级管理员账户。...我们在 让 Django 完成翻译:迁移数据库 中已经创建了一个后台账户,但如果你没有按照前面的步骤创建账户的话,可以运行 python manage.py createsuperuser 命令新建一个...注意每篇文章必须有一个分类,在添加文章时你可以选择已有分类。如果数据库中还没有分类,在选择分类时点击 Category 后面的 + 按钮新增一个分类即可。...在 Pythonzhcn 社区的新手问答版块 发布帖子。
Cheerio:用于遍历 DOM 的核心 JQuery Cheerio 是一个高效轻便的库,它使你可以在服务器端使用 JQuery 的丰富而强大的 API。...如果你以前用过 JQuery,那么将会对 Cheerio 感到很熟悉,它消除了 DOM 所有不一致和与浏览器相关的功能,并公开了一种有效的 API 来解析和操作 DOM。...然后在浏览器的 Dev Tools 帮助下,可以获得可以定位所有列表项的选择器。如果你使用过 JQuery,则必须非常熟悉 $('div> p.title> a')。...由于创建了 DOM,所以可以通过编程与要爬取的 Web 应用或网站进行交互,也可以模拟单击按钮。如果你熟悉 DOM 操作,那么使用 JSDOM 将会非常简单。...为了演示如何用 JSDOM 与网站进行交互,我们将获得 Reddit r/programming 论坛的第一篇帖子并对其进行投票,然后验证该帖子是否已被投票。
KISS(保持简单愚蠢),少即是多,所有这些东西都引起了我的共鸣,特别是当其他解决方案非常复杂时。我决定在本视频中使用HonzaKrál的示例来为我的代码提供基础。...设置Django项目 首先,您要使用创建一个虚拟环境, virtualenv venv 然后使用进行输入, source venv/bin/activate 以保留所有内容。...项目后,您需要创建一个将要使用的模型。...现在,您应该可以在那里看到您的Blog帖子模型。继续并在管理员中创建您的第一篇博客文章。 恭喜,您现在有了一个可正常运行的Django项目!终于是时候玩有趣的东西了–连接ElasticSearch。...我解释了如何将Django模型连接到ElasticSearch进行索引和搜索,但是ElasticSearch可以做很多事情。
: 页码不是一个整数时引发该异常 EmptyPage: 页码不在有效范围时(即数据为空)引发该异常 导入Paginator类,可以看到一些内置属性 from django.core.paginator...previous_page_number() 上一页的页码 next_page_number() 下一页的页码 start_index() 返回当前页上的第一个对象,相对于分页列表的所有对象的序号,从1...end_index() 返回当前页上的最后一个对象,相对于分页列表的所有对象的序号,从1开始。...视图函数 django 视图函数使用分页器Paginator,根据页面url上的请求参数page来获取当前是第几页。...#} {# 如果当前页有上一页#} {% if page_object.has_previous %} {# 当前页的上一页按钮正常使用#}
它作为URL分发器,将url请求分发给不同 的view处理 Django的下载与基本命令 1、下载Django: pip3 install django 2、创建一个django project...否则点击提交按钮,是没有反应的 <!...CSRF:跨站请求伪造,常缩写为CSRF或者XSRF,是一种对网站的恶意利用。 后面会讲到,如何避免CSRF。...GET数据为空。POST数据是一个字典 登录认证 正常网站,用户名和密码是保存在数据库中。由于还没有学到django连接数据库,所以这里将用户名和密码写死,模拟登录行为。...变量名没写,那么页面报错 思考:如何点击时间的时候,变成红色? 需要引入jquery来做,修改index.html <!
领取专属 10元无门槛券
手把手带您无忧上云