前后端半离不离 AJAX 的出现,让网页局部刷新成为可能。这一特性可以让用户留在当前页面中,同时发出新的HTTP请求,数据却可以不断地更新。解决了服务器每次请求都返回整个网页这种低效的机制。...post'); axios.post('api/users/',this.formInline).then(res => {//get()中的参数要与mock.js文件中的Mock.mock...浏览器一旦发现 AJAX 请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。 因此,实现 CORS 通信的关键是服务器。...实际开发中,我们在请求后端接口时的 url 一般不会填写 ip 地址和端口,而是 'api/xxx' 这种形式,这里是为了展示如何在开发环境进行前后端联调而写成此种形式。...但我不喜欢这种必须开启跨域的方式,感觉就不安全。 另外一种是将 dist 目录的资源由 django 驱动,这样就不涉及跨域的问题,但需要在打包时稍做调整。
GET请求在URL中传送的参数是有长度限制的,而POST么有。 7. 对参数的数据类型,GET只接受ASCII字符,而POST没有限制。 8....HTTP是基于TCP/IP的关于数据如何在万维网中如何通信的协议。 HTTP的底层是TCP/IP。所以GET和POST的底层也是TCP/IP,也就是说,GET/POST都是TCP链接。...并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。...觉得POST数据比GET数据安全的人会说 “防君子不防小人;中国小白多,能防小白用户就行了。”...我只是不喜欢模棱两可,不喜欢边界不清、概念不明,不喜欢“拿来主义”,也不喜欢被其它喜欢钻牛角尖的人奚落得无地自容。 “知之为知之,不知为不知,是知也。”
最近越来越喜欢使用 FastAPI 来写后端服务了,因为它是 Python 领域性能最好的 Web 框架,它专注于提供高性能的 Web API,其他方面并不限制你的手脚,可以随意使用你喜欢的三方库,这点类似于...scope='class' 类级别的 fixture 每个测试类只运行一次,不管测试类中有多少个类方法都可以共享这个 fixture scope='module' 模块级别的 fixture 每个模块只运行一次...,不管模块里有多少个测试函数,类方法或其他 fixture 都可以共享这个fixture scope='session' 会话级别的 fixture 每次会话只运行一次。...一次 pytest 会话中的所有测试函数、方法都可以共享这个 fixture 比如说让数据库回滚的,我们就可以写一个这样的 fixture: @pytest.fixture(scope="function...代码的数据库配置为 mysql,用户名、密码、数据库名请自行修改后执行。
这些字段目前是不够用的,我们再加几个字段,需要加观察次数、喜欢的用户、收藏的用户。...数据类型是IntegerField,默认是0 liked 喜欢的用户。数据类型是ManyToManyField,这是一种多对多的关系,表示一个视频可以被多个用户喜欢,一个用户也可以喜欢多个视频。...怎么显示详情呢,聪明的django为我们提供了DetailView。urls.py中设置的视图类是VideoDetailView,我们让VideoDetailView继承DetailView即可。...views.collect, name='collect'), 由于喜欢和收藏的功能实现非常类似,限于篇幅,我们只实现喜欢功能。...,如果登录了则调用switch_like(user)来实现喜欢或不喜欢功能,最后返回json。
如它所言,我们确实还没有发布任何文章,本节我们将使用 django 自带的 admin 后台来发布我们的博客文章。...在支持 Markdown 语法部分中将介绍如何在文章中插入图片的方法。...•在 admin 后台的 post 列表页面,我们只看到了文章的标题,但是我们希望它显示更加详细的信息,例如作者、发布时间、修改时间等。•新增文章时,所有数据都要自己手动填写。...接下来是让应用下注册的 model 显示为中文,既然应用是在 apps.py 中配置,那么和 model 有关的配置应该去找相对应的 model 。...django admin 已经自动帮我们生成了),而如果用户登录了我们的站点,那么 django 就会将这个用户实例绑定到 request.user 属性上,我们可以通过 request.user 取到当前请求用户
同样我们需要对 Django 做一些必要的配置,才能让 Django 知道如何在开发服务器中引入这些 CSS 和 JavaScript 文件,这样才能让博客页面的 CSS 样式生效。...6.3修改模板 目前我们看到的只是模板中预先填充的一些数据,我们得让它显示从数据库中获取的文章数据。...因此我们循环遍历 post_list ,每一次遍历的结果都保存在 post变量里。所以我们使用模板变量来显示 post 的属性值。...比如当用户访问 post/255/ 时(注意 Django 并不关心域名,而只关心去掉域名后的相对 URL),被括起来的部分 (?...在 index 页面博客文章列表的标题和继续阅读按钮写上超链接跳转的链接,即文章 post 对应的详情页的 URL,让用户点击后可以跳转到 detail 页面: <article class="<em>post</em>
如果你不喜欢这种方式,或者因为环境的原因不可以这么做,仍然可以把配置放在JSON, YAML, TOML文件里面。...local_settings这种反模式 说local_settings是反模式,是因为你生产环境的可执行代码,不能被开发者看到,也让他们不好debug解决问题。...有时候,在开发和测试中没有发现一些细微的bug,发现的时候已经太晚了。 下面是一个真实的例子,来自于去年我帮客户解决的问题: 项目使用第三方库做slug。配置放在settings中。...“ 是的,最近20年我也只碰到去年这一次因为这个原因造成的bug。 但是我相信,不管程序员都没天才,多么有经验,都无可避免会犯一些愚蠢的错误。...我个人喜欢使用django中自带的功能. import os from django.core.exceptions import ImproperlyConfigured def get_env_var
如果你对 Django 的视图类很熟悉,你会觉得使用 DRF 构建 REST API 与使用它们很相似,不过 DRF 只针对特定 API 使用场景而设计。...一般的 API 设置只需要一点代码,所以我们没有提供一份让你兴奋的示例代码,而是强调了一些可以让你生活的更舒适的 DRF 特性: 可自动预览的 API 可以使你的开发和人工测试轻而易举。...你可以查看 API 响应,并且不需要你做任何事就可以支持 POST/PUT/DELETE 类型的操作。...Django stored messages 可以很好地集成在Django的消息框架中(django.contrib.messages)并让用户决定会话过程中存储在数据库中的消息。 ...django-xadmin - 更美观更强大的后台 如果你不喜欢django自带后台admin简陋的样式,你可以使用xadmin。
再搭建后端 这里以 DRF(Django REST Framework) 为例。如果对 DRF 还是第一次接触,建议先按官方的教程[2]走一遍。...python manage.py runserver 我们在浏览器中输入 http://127.0.0.1:8000/admin 然后输入管理员用户名和密码,再新增 3 个用户,可以随便填写,目的是为了多几条测试数据...浏览器一旦发现 AJAX 请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。 因此,实现 CORS 通信的关键是服务器。...这里,我们填写用户名和邮箱,提交 post 请求后,users 表会新增一条记录,通过 get 请求也可以查询出来,大家可以动手试一试。...实际开发中,我们在请求后端接口时的 url 一般不会填写 ip 地址和端口,而是 'api/xxx' 这种形式,这里是为了展示如何在开发环境进行前后端联调而写成此种形式。
如它所言,我们确实还没有发布任何文章,本节我们将使用 Django 自带的 Admin 后台来发布我们的博客文章。...我们在 让 Django 完成翻译:迁移数据库 中已经创建了一个后台账户,但如果你没有按照前面的步骤创建账户的话,可以运行 python manage.py createsuperuser 命令新建一个...from django.contrib import admin from .models import Post, Category, Tag admin.site.register(Post)...在支持 Markdown 语法部分中将介绍如何在文章中插入图片的方法。...访问 http://127.0.0.1:8000/ 首页,你就可以看到你添加的文章列表了,下面是我所在环境的效果图: image.png 定制 Admin 后台 在 admin post 列表页面,我们只看到了文章的标题
【注1】:为了叙述方便,下面将Django 用户和爱好者简称用户/开发者。【注2】:原文比较长,本文只记录其中的部分。...【注3】:调查者大部分来自欧洲(44%)和北美(19%)和亚洲(17%),中国大陆只占2%。 摘要 • 大部分(64%)用户在工作和个人项目中都使用Django。...(type hints) • 大部分用户不喜欢写文档 • Django开发资源:Django官网、stack overflow、Youtube、Reddit(r/django)、Django论坛、Django...的使用r 大部分(64%)用户在工作和个人项目中都使用Django。...大部分用户使用Django的最新的稳定版本。 Q:你如何创建Django项目? 71%的用户从头开始。 17%的用户使用 Cookiecutter Django 创建。
而POST将数据放在BODY中。 GET的URL会有长度上的限制,则POST的数据则可以非常大。 POST比GET安全,因为数据在地址栏上不可见。...HTTP没有要求,如果Method是POST数据就要放在BODY中。 也没有要求,如果Method是GET,数据(参数)就一定要放在URL中而不能放在BODY中。...而且,现代的Web Server都是支持GET中包含BODY这样的请求。虽然这种请求不可能从浏览器发出,但是现在的Web Server又不是只给浏览器用,已经完全地超出了HTML服务器的范畴了。...我不想解释了,有时候就得自己痛一次才记得住。 HTTP协议对GET和POST都没有对长度的限制 HTTP协议明确地指出了,HTTP头和Body都没有长度的要求。...我只是不喜欢模棱两可,不喜欢边界不清、概念不明,不喜欢“拿来主义”,也不喜欢被其它喜欢钻牛角尖的人奚落得无地自容。 “知之为知之,不知为不知,是知也。”
在本教程中,我们将详细介绍如何在Django中实现自定义用户认证,使用包含userid字段的CustomUser模型以及标准的密码认证。本教程假设您已经对Django有基本的了解并且已经设置好了项目。...确保API响应中包含CSRF保护和错误处理。前后端集成使用AJAX请求在前端页面中与后端进行通信,处理用户认证的成功和失败情况。逐步教程1....定义CustomUser模型首先,在usermanagement/models.py中定义一个CustomUser模型,包含userid字段以及其他可选字段如reading和signature。...配置Django设置在settings.py中配置Django设置,以使用自定义认证后端。...开发登录API视图,并使用AJAX请求在前端页面中集成用户认证功能。这种设置允许您根据特定项目需求定制Django中的认证过程,增强用户登录功能的安全性和易用性。
HTTP没有要求,如果Method是POST数据就要放在BODY中。也没有要求,如果Method是GET,数据(参数)就一定要放在URL中而不能放在BODY中。...而且,现代的Web Server都是支持GET中包含BODY这样的请求。虽然这种请求不可能从浏览器发出,但是现在的Web Server又不是只给浏览器用,已经完全地超出了HTML服务器的范畴了。...我不想解释了,有时候就得自己痛一次才记得住。 HTTP协议对GET和POST都没有对长度的限制 HTTP协议明确地指出了,HTTP头和Body都没有长度的要求。...觉得POST数据比GET数据安全的人会说 “防君子不防小人;中国小白多,能防小白用户就行了。”...我只是不喜欢模棱两可,不喜欢边界不清、概念不明,不喜欢“拿来主义”,也不喜欢被其它喜欢钻牛角尖的人奚落得无地自容。 “知之为知之,不知为不知,是知也。”
mysite目录只是你项目的名称, Django 不关心它的名字,可以将它重命名为任何你喜欢的名字。 ...(2)manage.py: 一个让你用各种方式管理 Django 项目的命令行工具。比如我们之前用的python manage.py runserver命令。...注意:视图函数中的request是django对http请求的封装,其中request.method封装了请求动作,包括GET,PUT,POST等。...def get(self, request): # get请求会用这个方法处理,如果是post请求再写个post方法处理即可 ret = "Welcome to my home"...6 使用模板 (1)返回html字符串 前文演示了在视图函数中直接返回一些字符串给用户,用的是from django.http import HttpResponse中的HttpResponse对象。
django内置的后台管理界面。...让后端开发得心应手。 Element-UI + Vue 加持,让古老的django admin 焕然一新。...SIMPLEUI_ANALYSIS = False 值 说明 True 收集分析,一天只上报一次分析数据。...并且menus中输出的菜单不会受权限控制。 默认图标 simpleui对所有菜单提供了一个默认的file图标,是为了统一风格。...也许你并不喜欢,你可以选择关闭默认图标 SIMPLEUI_DEFAULT_ICON = False 值 说明 True 开启默认图标,默认为True False 关闭默认图标 自定义图标 simpleui
有时候我也考虑,一切的目标真的是更好的理解用户,给用户推送他想看的东西吗?或许是吧,但是始终绕不开的一个问题是,构建一个商业模式,让广告主和投资人为用户的停留时长买单。...让用户更多的停留在平台上,消费更多的时间。...+ 1 post.save() 这是最简单的做法,但是大部分情况,用户访问一篇文章,这篇文章通常会在缓存中,毕竟不需要每次都去数据库中获取。...那所有用户执行完post.save()之后,结果均为101,也就是一百次并发访问,可能出现pv只加1的情况。 要解决这个问题,两个办法。 一、加锁,这个据我的了解Django没有提供,需要自己来实现。...对于方法二,在Django中怎么实现呢。其实翻译为sql就是 UPDATE `blog_post` SET `pv` = (`blog_post`.
这样关于保存用户所产生的这个动作,比如用户写了一片日志,我们就可以使用Generic relations来指向某个Model实例比如Post,而那个Post实例才真正保存着关于用户动作的完整信息,即Post...,django中已定义好得一些signal, 在django/db/models/signal.py中可以查看,同时也可以自定义信号。 ...xxx-xxx-xx 1 1 1(代表上面创建的第一次班级调查) 您最喜欢什么玩具?...xxx-xxx-xx 2 1 1(代表上面创建的第一次班级调查) 您最喜欢什么英雄人物?...xxx-xxx-xx 2 1 1(代表上面创建的第一次班级调查) 您最喜欢什么英雄人物?
在本文中,我们将学习如何在Ubuntu 18.04中安装Pinta图像编辑器。 Pinta是一个免费的开源GNOME绘画应用程序,可用于编辑图像和绘画。...Pinta由Jonathan Post于2010年在MIT X11许可下使用C#(C-SHARP)编程语言发布。...Pinta图像编辑器是一个易于使用,用户友好的应用程序和易于理解的功能。这个应用程序几乎在所有语言中都可用。应用程序仍在努力使其更好和可用。...如何在Ubuntu 18.04中卸载Pinta Image Editor?...出于某种原因,如果您不喜欢Pinta Image Editor并希望使用以下命令从系统中卸载该应用程序。
在Django的认证框架中只存在一种类型的用户,因此诸如'superusers'或管理员'staff'用户只是具有特殊属性集的user对象,而不是不同类型的user对象。...login()使用Django的会话框架保存用户的ID在会话中。 注意任何在匿名会话中设置的数据都会在用户登入后的会话中都会记住。...密码更改后的会话失效 New in Django 1.7. 警告 这种保护只在MIDDLEWARE_CLASSES中SessionAuthenticationMiddleware开启的情况下应用。...如果你不喜欢调用registration/login.html,你可以通过额外的参数传递template_name参数给你URLconf中的视图。...该表单必须在它的__init__方法中接收一个request关键字参数,并提供一个get_user方法,此方法返回认证过的用户对象(这个方法永远只在表单验证成功后调用)。
领取专属 10元无门槛券
手把手带您无忧上云