一、django新建项目和应用

参考:https://segmentfault.com/a/1190000016049962#articleHeader2

1、创建项目

  1. django-admin startproject dj_e

  

2、数据库配置

  1. DATABASES = {
  2. 'default': {
  3. 'ENGINE': 'django.db.backends.mysql', #数据库引擎
  4. 'NAME': 'dj_e_db', #数据库名
  5. 'USER': 'root', #账户名
  6. 'PASSWORD': 'password', #密码
  7. 'HOST': 'localhost', #主机
  8. 'PORT': '3306', #端口
  9. }
  10.  
  11. }

  

3、在_init_.py添加如下代码

  1. import pymysql
  2. pymysql.install_as_MySQLdb()

  

4、数据库迁移命令

  1. python manage.py makemigrations
  2. python manage.py migrate

  

5、创建应用,编写views
ajax与get的后台接口
创建应用register(在这个应用实现get):

  1. python manage.py startapp register

  

6、在views.py下创建接口,我们先举个简单的例子——hello接口

  1. from django.shortcuts import render, render_to_response
  2. from django.http import JsonResponse
  3.  
  4. # Create your views here.
  5. def hello(request):
  6. return JsonResponse({'result': 200, 'msg': '连接成功'})

  

7、register目录中新建一个urls.py文件,输入以下代码

  1. from django.conf.urls import url
  2. from . import views
  3.  
  4. urlpatterns = [
  5. url(r'^helloApi$', views.hello, name='hello'),
  6. url(r'^registerPage$', views.registerPage, name='registerPage'),
  7. ]

  

8、在dj_e/urls.py中修改

  1. from django.conf.urls import include, url
  2. from django.contrib import admin
  3.  
  4. urlpatterns = [
  5. url(r'^admin/', include(admin.site.urls)),
  6. url(r'^', include('register.urls')),
  7. url(r'^register/', include("register.urls")),
  8. ]

  

9、最后打开django的开发服务器,测试一下接口

  1. python manage.py runserver

 

二、原生js实现异步的get请求 

1、进行前后端的分离(ajax的get请求异步)
在根目录创建一个html文件夹,并在里面创建register.html

  1. <script>
  2. function ajaxResponse(xhr, successFunction, falseFunction) {
  3. xhr.onreadystatechange = function () {
  4. if (xhr.readyState === 4) {
  5. console.log(xhr.status);
  6. if ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304) {
  7. alert("成功");
  8. successFunction();
  9. } else {
  10. alert("失败" + xhr.status);
  11. falseFunction();
  12. }
  13. }
  14. }
  15. }
  16. </script>
  17. <div id="getHelloApiDiv" style="background: aqua;height: 100px;width: 100px"></div>
  18. <script>
  19. getApiDiv = document.querySelector('#getHelloApiDiv');
  20. xhr = new XMLHttpRequest();
  21. {# getApiDiv.onclick = function () {#}
  22. window.onload = function () {
  23. ajaxResponse(
  24. xhr,
  25. function () {
  26. helloText = JSON.parse(xhr.responseText);
  27. getApiDiv.innerText = helloText.msg;
  28. }, function () {
  29. }
  30. );
  31. xhr.open('get', 'http://localhost:8000/register/helloApi'); //接口写在这里
  32. xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded;charset=utf-8;');
  33. xhr.send(null);
  34. };
  35. </script>

  

2、在register/views.py中编写一个返回html的接口,代码如下,注意import了render_to_response方法

  1. from django.shortcuts import render, render_to_response
  2. from django.http import JsonResponse
  3.  
  4. # Create your views here.
  5. def hello(request):
  6. return JsonResponse({'result': 200, 'msg': '连接成功'})
  7.  
  8. def registerPage(request):
  9. return render_to_response("register.html")

 

三、解决一些问题

1、django的相关配置

  1. # 注册应用和允许跨域
  2. INSTALLED_APPS = (
  3. ...
  4. 'register',
  5. 'corsheaders',
  6. )
  7.  
  8. # 允许django跨域请求的配置
  9. MIDDLEWARE_CLASSES = (
  10. ...
  11. 'corsheaders.middleware.CorsMiddleware',
  12. ...
  13. )
  14. CORS_ORIGIN_ALLOW_ALL = True
  15. CORS_ALLOW_CREDENTIALS = True
  16.  
  17. # 设置模板路径
  18. TEMPLATES = [
  19. {
  20. 'BACKEND': 'django.template.backends.django.DjangoTemplates',
  21. 'DIRS': [os.path.join(BASE_DIR, 'html')],
  22. ...
  23.  
  24. # 数据库配置
  25. DATABASES = {
  26. 'default': {
  27. # 'ENGINE': 'django.db.backends.sqlite3',
  28. # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
  29. 'ENGINE': 'django.db.backends.mysql', # 数据库引擎
  30. 'NAME': 'dj_e_db', # 数据库名
  31. 'USER': 'root', # 账户名
  32. 'PASSWORD': 'root', # 密码
  33. 'HOST': 'localhost', # 主机
  34. 'PORT': '3306', # 端口
  35. }
  36. }
  37.  
  38. # 语言和时区配置
  39. LANGUAGE_CODE = 'zh-Hans'
  40. TIME_ZONE = 'Asia/Shanghai'

  

2、跨域请求

参考:https://www.jianshu.com/p/24945ee1ec05

pip安装django-cors-headers,解决异步跨域被禁言的问题。

需要settings.py 进行配置。

四、效果截图

确定后,

python的前后端分离(一):django+原生js实现get请求的更多相关文章

  1. 海纳百川无所不容,Win10环境下使用Docker容器式部署前后端分离项目Django+Vue.js

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_179 随着现代化产品研发的不断推进,我们会发现,几乎每个产品线都会包含功能各异的服务,而且服务与服务之间存在也会存在着错综复杂的依 ...

  2. Win10环境前后端分离项目基于Vue.js+Django+Python3实现微信(wechat)扫码支付流程(2021年最新攻略)

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_182 之前的一篇文章:mpvue1.0+python3.7+Django2.0.4实现微信小程序的支付功能,主要介绍了微信小程序内 ...

  3. springMVC前后端分离开发模式下支持跨域请求

    1.web.xml中添加cors规则支持(请修改包名) <filter> <filter-name>cors</filter-name> <filter-cl ...

  4. 【转】python+django+vue搭建前后端分离项目

    https://www.cnblogs.com/zhixi/p/9996832.html 以前一直是做基于PHP或JAVA的前后端分离开发,最近跟着python风搭建了一个基于django的前后端分享 ...

  5. python+django+vue搭建前后端分离项目

    以前一直是做基于PHP或JAVA的前后端分离开发,最近跟着python风搭建了一个基于django的前后端分享项目 准备工作:IDE,[JetBrains PyCharm2018][webpack 3 ...

  6. python django框架+vue.js前后端分离

    本文用于学习django+vue.js实现web前后端分离协作开发.以一个添加和删除数据库书籍应用为实例. django框架官方地址:https://www.djangoproject.com/ vu ...

  7. 巨蟒python全栈开发flask8 MongoDB回顾 前后端分离之H5&pycharm&夜神

    1.MongoDB回顾 .启动 mongod - 改变data/db位置: --dbpath D:\data\db mongod --install 安装windows系统服务 mongod --re ...

  8. Python Flask高级编程之RESTFul API前后端分离精讲 (网盘免费分享)

    Python Flask高级编程之RESTFul API前后端分离精讲 (免费分享)  点击链接或搜索QQ号直接加群获取其它资料: 链接:https://pan.baidu.com/s/12eKrJK ...

  9. 解决Django+Vue前后端分离的跨域问题及关闭csrf验证

      前后端分离难免要接触到跨域问题,跨域的相关知识请参:跨域问题,解决之道   在Django和Vue前后端分离的时候也会遇到跨域的问题,因为刚刚接触Django还不太了解,今天花了好长的时间,查阅了 ...

随机推荐

  1. 第三百九十八节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署CentOS6.5系统环境设置

    第三百九十八节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署CentOS6.5系统环境设置 1.Linux安装配置 注意事项: 虚拟机网卡桥接模式 不要拨VPN 如果,网络怎么都 ...

  2. django 同步数据库出现 No changes detected 的可能原因

    在使用 python manage.py makemigrations时候会出现:No changes detected 的错误. 造成这个错误的原因可能有很多. 我这里遇到这个错误的原因是:migr ...

  3. [IR] Time and Space Efficiencies Analysis of Full-Text Index Techniques

    文章阅读:全文索引技术时空效率分析 LIU Xiao-ZhuPENG Zhi-Yong 根据全文索引实现技术的不同,将其分为三大类: 索引技术 (倒排文件.签名文件 .后缀树与后缀数组) 压缩与索引混 ...

  4. [PHP] 05 - Cookie & Session

    故事背景 同 http, html, REST API 一样属于基础性的知识内容. [Node.js] 07 - Html and Http [Node.js] 08 - Web Server and ...

  5. [Node.js] 02 - Read Eval Print Loop

    视频课程:带你入门Nodejs,提及了非常多的后端知识点 发布时间: 2017年10月7日 课程时长:193 分钟 类别:后端 课时:22 npm Resource: npm模块管理器[阮一峰] np ...

  6. IntellIJ IDEA 启动 参数 配置

    系统环境: 型号名称: MacBook Pro型号标识符: MacBookPro11,4处理器名称: Intel Core i7处理器速度: 2.8 GHz处理器数目: 1核总数: 4L2 缓存(每个 ...

  7. go语言内置基础类型

    1.数值型(Number) 三种:整数型.浮点型和虚数型(有符号整数表示整数范围 -2n-1~2n-1-1:无符号整数表示整数范围 0~2n-1) go内置整型有:uint8, uint16, uin ...

  8. 9.28 Django博客项目(一)

    2018-9-28 17:37:18 今天把博客项目 实现了注册和添加图片的功能! 放在了自己的github上面 源码! https://github.com/TrueNewBee/bbs_demo ...

  9. jenkins管理

    1.1 重启,重载,关闭 http://10.0.0.51:8080/jenkins/restart     重启 http://10.0.0.51:8080/jenkins/reload       ...

  10. zabbix监控主机CPU使用率

    zaibix默认模板针对CPU只有监控负载(load)没有监控CPU使用率 选择配置-模板-Template OS Windows-监控项 创建监控项 创建监控图形 查看图像结果