首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Hcode网站的搭建日记(二)Django的创建与前后端的数据互传

Django的官方文档 Hcode网站使用的Django版本为3.0.5,所以以Django3.0的版本进行对建站的讲解,可能由些代码实现与老版本的Django有些差异,但是实现理念都行相通的。...项目则是一个网站使用的配置和应用的集合。项目可以包含很多个应用。应用可以被很多个项目使用。 例如本网站就分管为blog,function,ajax等等app,它们分别处理不同请求。...admin: 对应应用后台管理配置文件 apps: 对应应用的配置文件 models: 数据模块,用于设计数据库等 tests: 编写测试脚本 views:视图层,直接和浏览器进行交互 每次新建一个App...emsp; 后端依旧用home_view来验证用户名,使用网页重定向...) 然后是前端,只做对模板语言调用后端传来数据的简单运用。

1K40

第三方登录(2)---GitHub登录

在前端使用js就可以实现第三方QQ登录。然后如果有数据库操作可以发起ajax请求将登录得到的用户信息发给后端,在后端对用户信息进行保存。第三方登录(1)---qq登录 。...很多人已经都听过GitHub这个IT开源平台,而且其实如果我们网站用户主要面向于IT类的,这时候使用GitHub第三方登录就会极度简化用户注册操作。接下来说说如何实现GitHub第三方登录。...另一个就是我们注册应用设置的回调地址。用户授权成功就会跳转到我们设定的回调地址。现在来看下代码: ? 可以看到我们在这里设置了一个a标签,点击a标签会重定向到GitHub授权界面。...如果code未被使用,则接口会返回access_code. ? ?...可以看到我们成功获取到用户个人信息,最后前端发起ajax请求调用后端的获取用户信息接口 ? 我们发起ajax请求后端获取用户数据的接口,然后获取到用户数据后直接在界面显示出来。

1.8K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    基于django的视频点播网站开发-step5-详情页功能

    我们将会学习到通用视图类DetailView的使用、评论动态加载、以及如何通过ajax实现喜欢和收藏功能,并通过一段段很酷的代码来说明这些功能。 效果展示 [1686a2d95fc23bde?...设置用户表为settings.AUTH_USER_MODEL 更多关于ManyToManyField的使用介绍,可以查询django官网的介绍。...因为每次调用DetailView的时候,django都会回调get_object()这个函数。因此我们可以把increase_view_count()放到get_object()里面执行。...收藏和喜欢功能 收藏和喜欢是一组动作,因此可以用ajax来实现:用户点击后调用后端接口,接口返回json数据,前端显示结果。...的接口请求调用,调用后返回结果更新前端网页内容。

    2.2K30

    Django学习-第十一讲(下):视图高级(一)网页请求限制、HttpRequest、HttpResponse、JsonResponse对象

    暂时性重定向: http的状态码是302,表示页面的暂时性跳转。比如访问一个需要权限的网址,如果当前用户没有登录,应该重定向到登录页面,这种情况下,应该用暂时性重定向。...在Django中,重定向是使用redirect(to, *args, permanent=False, **kwargs)来实现的。...如果服务器使用了nginx做反向代理或者负载均衡,那么这个值返回的是127.0.0.1,这时候可以使用HTTP_X_FORWARDED_FOR来获取,所以获取ip地址的代码片段如下: ``` if request.META.has_key...如果在访问的时候还有端口号,那么会加上端口号。比如www.baidu.com:9000。 get_full_path():返回完整的path。如果有查询字符串,还会加上查询字符串。..."age":18}) 默认情况下JsonResponse只能对字典进行dump,如果想要对非字典的数据进行dump,那么需要给JsonResponse传递一个safe=False参数。

    1.2K20

    Django框架学习(一)

    /'去掉再匹配,匹配成功之后,去掉匹配成功的内容;将匹配剩下的内容到包含的子应用urls里面进行同样匹配,然后匹配成功,找到对应的视图函数,就会进行调用,然后给里面传一个request,最后就返回一个响应...在子应用中进行url地址的配置时,建议严格匹配开头和结尾(防止访问时,视图混乱的情况,框架程序找错对应的视图函数) 4.3url地址反向解析 作用:根据视图函数动态获取对应的url,一般配合重定向时使用...Flask中使用方法: from flask import url_for url_for('蓝图名.视图函数名') 在重定向的时候使用:redirect('/index') 重定向中使用反向解析的好处...如果为None则表示使用浏览器的默认设置,一般为utf-8。 这个属性是可写的,可以通过修改它来修改访问表单数据使用的编码,接下来对属性的任何访问将使用新的encoding值。.../json 6.3.2响应时进行页面的重定向 flask和Django中的重定向是一样的redirect('重定向的url地址') 6.4cookie 6.4.1对比 特点: 1、cookie数据保存在客户端

    2.2K20

    Django MVT之V

    URL参数 进行url匹配时,把所需要传递的参数设置成一个正则表达式组,Django框架就会自动把匹配成功后相应组的内容作为参数传递给视图函数。...如果为None则表示使用浏览器的默认设置,一般为utf-8。 这个属性是可写的,可以通过修改它来修改访问表单数据使用的编码,接下来对属性的任何访问将使用新的encoding值。...如果一个键同时拥有多个值将获取最后一个值,如果键不存在则返回None值,可以设置默认值进行后续处理 dict.get('键', 默认值) # 可简写为 dict['键'] getlist方法 根据键获取多个值...JsonResponse 和 AJAX 这里使用jQuery来发起ajax请求,所以需要引入jQuery文件。...('/index') 在django.shortcuts模块中为重定向类提供了简写redirect函数。

    1.9K20

    第三方登录(3)---微博登录

    我们在前面实现了使用QQ账号以及GitHub账号进行第三方登录。...另一个就是我们注册应用设置的回调地址redirect_uri。用户授权成功就会跳转到我们设定的回调地址。现在来看下代码: ? 可以看到我们在这里设置了一个a标签,点击a标签会重定向到微博授权界面。...如果code未被使用,则接口会返回access_code. ? ?...可以看到我们成功获取到用户个人信息,最后前端发起ajax请求调用后端的获取用户信息接口。 ? 我们发起ajax请求后端获取用户数据的接口,然后获取到用户数据后直接在界面显示出来。...目前如果需要源码的可以联系我进行提供,等第三方系列文章全部写完我会整理全部源码进行提供。 谢谢观看,希望我的文章能够对你有所帮助。

    5.3K31

    Django 2.1.7 视图 - HttpResponse对象、子类JsonResponse、子类HttpResponseRedirect

    如果不指定过期时间,在关闭浏览器时cookie会过期。 delete_cookie(key):删除指定的key的Cookie,如果key不存在则什么也不发生。 write:向响应体中写数据。...如果使用这种方式构造一个漂亮丰富的页面,对于开发人员真是会发疯,于是就有了下面的方式: 调用模板 可以将html、css、js定义到一个html文件中,然后由视图来调用。...3.执行回调函数。...Django中提供了HttpResponseRedirect对象实现重定向功能,这个类继承自HttpResponse,被定义在django.http模块中,返回的状态码为302。...重定向简写函数redirect 在django.shortcuts模块中为重定向类提供了简写函数redirect。

    1.3K20

    【python】【Djang】GPS北斗串口数据实时定位百度地图

    本意是使用百度地图的api,但是这是一个静态的网页。如果要动态显示,且由前端直接读取PC端的串口数据其实不好实现,在网上查了很多资料,最通常的做法是在前端使用一个active控件读取串口的数据。...还是需要去用后台采集数据,搭建后台和前端进行通信。 串口模拟 路是一步一步走的,胖子也是一口一口吃的,直接去读取GPSS/北斗设备的数据是不可行的。...原始数据包含的信息比较多,而且发送频率也比较高,数据眼花缭乱,这里只匹配想要的数据进行处理。在百度地图上定位只需要“经度”、“纬度”。...这里想到使用了Ajax。...这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。 传统的网页(不使用 Ajax)如果需要更新内容,必须重载整个网页页面。

    6.8K52

    09.Django基础七之Ajax

    其实这里就使用了AJAX技术!当文件框发生了输入变化时,使用AJAX技术向服务器发送一个请求,然后服务器会把查询到的结果响应给浏览器,最后再把后端返回的结果展示出来。       ...当输入用户名后,把光标移动到其他表单项上时,浏览器会使用AJAX技术向服务器发出请求,服务器会查询名为lemontree7777777的用户是否存在,最终服务器返回true表示名为lemontree7777777...:8000/index/,此时和我们的url就能匹配上了,因为我们的url正则写的就加了/,如果你将下面这个值设置成false,那么django就不会自动帮你做这个事情了,那么用户在输入127.0.0.1...:8000/index,没有最后那个斜杠的路径时,就无法和我们的url正则匹配上了,所以就找不到url了,就会报错,但是注意,django只能帮你重定向让浏览器再发一个get请求,如果你是post请求(...此外,如果说我们想指定自己的回调函数名,或者说服务上规定了固定回调函数名该怎么办呢?

    3.6K20

    Django—视图

    一、URLconf 用户通过在浏览器的地址栏中输入网址请求网站,对于Django开发的网站,由哪一个视图进行处理请求,是由url匹配找到的。...url(正则,'视图函数名称') 获取值 请求的url被看做是一个普通的python字符串,进行匹配时不包括域名、get或post参数。...DEBUG = False ALLOWED_HOSTS = ['*', ] 404错误及视图 将请求地址进行url匹配后,没有找到匹配的正则表达式,则调用404视图,这个视图会调用404.html的模板进行渲染...ajax代码执行过程如下: 1.发起请求。 2.服务器端视图函数执行。 3.执行回调函数。 ?...重定向简写函数redirect 在django.shortcuts模块中为重定向类提供了简写函数redirect。 1)修改booktest/views.py文件中red1视图,代码如下: ? ?

    4.5K20

    Django之视图层

    因此,不应该使用 if request.POST 来检查使用的是否是POST 方法;应该使用 if request.method == "POST"   另外:如果使用 POST 上传文件的话,文件信息将包含在...1.request.get_full_path()   返回 path,如果可以将加上查询字符串。   例如:"/music/bands/the_beatles/?...如果你编写自己的 XMLHttpRequest 调用(在浏览器端),你必须手工设置这个值来让 is_ajax() 可以工作。   ...如果一个响应需要根据请求是否是通过AJAX 发起的,并且你正在使用某种形式的缓存例如Django 的 cache middleware, 你应该使用 vary_on_headers('HTTP_X_REQUESTED_WITH...这种情况下,如果不做重定向,则用户收藏夹或搜索引擎数据库中旧地址只能让访问客户得到一个404页面错误信息,访问流量白白丧失;再者某些注册了多个域名的 网站,也需要通过重定向让访问这些域名的用户自动跳转到主站点等

    1.7K10

    Django数据库查询优化与AJAX

    orm相关的数据库查询优化 惰性查询 惰性查询指当我们只查数据库而不是用这些数据时,Django不会执行查询数据库的代码,目的是减少不必要的数据库操作,降低数据库的压力。...(重要) AJAX简介 AJAX(Asynchronous Javascript And XML)“异步的Javascript和XML”,即使用Javascript语言与服务器进行异步交互,传输的数据为...AJAX 不是新的编程语言,而是一种使用现有标准的新方法。 AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。...} }) 前后端传输数据的编码格式 前后端进行数据交互的时候,针对不同的数据后端会进行不同的处理,Django中的request.POST、request.GET...2.对JSON数据进行序列化。 3.Django后端针对json格式的数据不会做任何的处理,只是将数据原封不动的放在了request.body中,我们需要手动对其进行反序列化处理。

    2.4K20

    使用AJAX获取Django后端数据

    根据Django项目的URLconf和视图的配置方式,URL可能包含关键字参数或查询字符串,我们希望在视图中使用该参数来选择请求的数据。 Headers 设置AJAX请求头参数。...将根据那些URL参数或查询字符串(如果使用的话)从数据库中检索数据。我们要发送回页面的数据必须在使用JsonResponse。 调用之前,请确保从django.http导入JsonResponse。...如果尝试通过直接在浏览器中键入URL来访问此视图,则会收到错误消息。可以向视图中添加其他逻辑(例如重定向),以防止用户尝试在没有AJAX请求的情况下访问视图时看到错误。...如果需要支持IE,请查看jQuery或XMLHttpRequest来发出AJAX请求。 AJAX请求应仅限于Django项目的一小部分。...如果发现自己在多个模板中使用它们来获取大量数据,请考虑使用Django Rest Framework创建API。

    7.6K40

    django 1.8 官方文档翻译: 3-4-3 使用基于类的视图处理表单

    使用基于类的视图处理表单 表单的处理通常有3 个步骤: 初始的的GET (空白或预填充的表单) 带有非法数据的POST(通常重新显示表单和错误信息) 带有合法数据的POST(处理数据并重定向) 你自己实现这些功能经常导致许多重复的样本代码...这些通用的视图将自动创建一个ModelForm,只要它们能知道使用哪一个模型类: 如果给出model属性,则使用该模型类。 如果get_object() 返回一个对象,则使用该对象的类。...如果给出queryset,则使用该查询集的模型。 模型表单提供一个form_valid() 的实现,它自动保存模型。如果你有特殊的需求,可以覆盖它;参见下面的例子。...如果你想使用一个自定义的ModelForm(例如添加额外的验证),只需简单地在你的视图上设置form_class。...AJAX 示例 下面是一个简单的实例,展示你可以如何实现一个表单,使它可以同时为AJAX 请求和‘普通的’表单POST 工作: from django.http import JsonResponse

    1.9K20

    Ajax第三天

    - 基础使用 目标 了解 AJAX 原理 XHR 的基础使用 讲解 AJAX 是浏览器与服务器通信的技术,采用 XMLHttpRequest 对象相关代码 axios 是对 XHR 相关代码进行了封装,...调用 send 方法,发起请求 02.XMLHttpRequest - 查询参数 目标 使用 XHR 传递查询参数给服务器,获取匹配数据 讲解 复习下什么是查询参数:携带额外信息给服务器,返回匹配想要的数据...,传递多对查询参数并获取地区列表的需求 但是多对查询参数,如果自己拼接很麻烦,这里用 URLSearchParams 把参数对象转成“参数名=值&参数名=值“格式的字符串,语法如下: 小结 JS 对象如何转成查询参数格式字符串...: myAxios 函数调用后,判断 params 选项 基于 URLSearchParams 转换查询参数字符串 使用自己封装的 myAxios 函数显示地区列表 小结 外面传入查询参数对象,myAxios...完成案例-天气预报 今日作业(必完成) 参考作业文件夹作用 参考文档 Ajax原生-mdn 同步异步-mdn 回调函数-mdn Promise-mdn Day03_AJAX原理 客观题 参考客观题目录下的

    7710

    03.Django基础三之视图函数

    除非使用中间件重写代理的首部。 2.HttpRequest.get_full_path()   返回 path,如果可以将加上查询字符串。   ...如果一个响应需要根据请求是否是通过AJAX 发起的,并且你正在使用某种形式的缓存例如Django 的 cache middleware, 你应该使用 vary_on_headers('HTTP_X_REQUESTED_WITH...#如果这样返回,ajax还需要进行json解析 #views.py return HttpResponse(json.dumps({"msg":"ok!"}))...#如果这样返回,两边都不需要进行json的序列化与反序列化,ajax接受的直接是一个对象 #views.py from django.http import JsonResponse return JsonResponse...那个函数里面独有的呢,你怎么搞,有人可能就响了,我把所有的数据都拿过来不就行了吗,首先如果数据量很大的话,是不是都重复了,并且你想想如果用户登陆完成之后,你们有进行跳转,那么如果网速不太好,卡一下,你想刷新一下你的页面

    5K30

    Ajax 实战

    即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML,现在更多使用json数据) 同步交互:客户端发出一个请求后,需要等待服务器响应结束后,才能发出第二个请求...request对象方法判断什么类型的请求,如果是Ajax,不管本质是post还是get等,写request.is_ajax()即可 基于Ajax进行登录验证 需求: 1.前端登录页面 2.后端数据库验证前端提交的信息...Ajax,form表单提交完数据会自己刷新,所有在使用button元素提交的时候会刷两次,可以讲form元素去掉; 如果使用Ajax,form元素也可以不去掉,那么就不能使用button元素,可以使用...,ajax接收到数据后会自动转成对象 如果使用Ajax,能不能解析返回的数据,取决于响应的类型,如果是json类型,那么就自动解析,不是需要自己手动解析 如果使用了ajax,后端就不要返回rediret...,需要借助于一个js的FormData对象 Ajax上传局部刷新 Ajax上传文件如果不想使用urlencoded默认处理,可以通过 processData: false不预处理,contentType

    1.4K10
    领券