python的前后端分离(一):django+原生js实现get请求
一、django新建项目和应用
参考:https://segmentfault.com/a/1190000016049962#articleHeader2
1、创建项目
- django-admin startproject dj_e
2、数据库配置
- DATABASES = {
- 'default': {
- 'ENGINE': 'django.db.backends.mysql', #数据库引擎
- 'NAME': 'dj_e_db', #数据库名
- 'USER': 'root', #账户名
- 'PASSWORD': 'password', #密码
- 'HOST': 'localhost', #主机
- 'PORT': '3306', #端口
- }
- }
3、在_init_.py添加如下代码
- import pymysql
- pymysql.install_as_MySQLdb()
4、数据库迁移命令
- python manage.py makemigrations
- python manage.py migrate
5、创建应用,编写views
ajax与get的后台接口
创建应用register(在这个应用实现get):
- python manage.py startapp register
6、在views.py下创建接口,我们先举个简单的例子——hello接口
- from django.shortcuts import render, render_to_response
- from django.http import JsonResponse
- # Create your views here.
- def hello(request):
- return JsonResponse({'result': 200, 'msg': '连接成功'})
7、register目录中新建一个urls.py文件,输入以下代码
- from django.conf.urls import url
- from . import views
- urlpatterns = [
- url(r'^helloApi$', views.hello, name='hello'),
- url(r'^registerPage$', views.registerPage, name='registerPage'),
- ]
8、在dj_e/urls.py中修改
- from django.conf.urls import include, url
- from django.contrib import admin
- urlpatterns = [
- url(r'^admin/', include(admin.site.urls)),
- url(r'^', include('register.urls')),
- url(r'^register/', include("register.urls")),
- ]
9、最后打开django的开发服务器,测试一下接口
- python manage.py runserver
二、原生js实现异步的get请求
1、进行前后端的分离(ajax的get请求异步)
在根目录创建一个html文件夹,并在里面创建register.html
- <script>
- function ajaxResponse(xhr, successFunction, falseFunction) {
- xhr.onreadystatechange = function () {
- if (xhr.readyState === 4) {
- console.log(xhr.status);
- if ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304) {
- alert("成功");
- successFunction();
- } else {
- alert("失败" + xhr.status);
- falseFunction();
- }
- }
- }
- }
- </script>
- <div id="getHelloApiDiv" style="background: aqua;height: 100px;width: 100px"></div>
- <script>
- getApiDiv = document.querySelector('#getHelloApiDiv');
- xhr = new XMLHttpRequest();
- {# getApiDiv.onclick = function () {#}
- window.onload = function () {
- ajaxResponse(
- xhr,
- function () {
- helloText = JSON.parse(xhr.responseText);
- getApiDiv.innerText = helloText.msg;
- }, function () {
- }
- );
- xhr.open('get', 'http://localhost:8000/register/helloApi'); //接口写在这里
- xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded;charset=utf-8;');
- xhr.send(null);
- };
- </script>
2、在register/views.py中编写一个返回html的接口,代码如下,注意import了render_to_response方法
- from django.shortcuts import render, render_to_response
- from django.http import JsonResponse
- # Create your views here.
- def hello(request):
- return JsonResponse({'result': 200, 'msg': '连接成功'})
- def registerPage(request):
- return render_to_response("register.html")
三、解决一些问题
1、django的相关配置
- # 注册应用和允许跨域
- INSTALLED_APPS = (
- ...
- 'register',
- 'corsheaders',
- )
- # 允许django跨域请求的配置
- MIDDLEWARE_CLASSES = (
- ...
- 'corsheaders.middleware.CorsMiddleware',
- ...
- )
- CORS_ORIGIN_ALLOW_ALL = True
- CORS_ALLOW_CREDENTIALS = True
- # 设置模板路径
- TEMPLATES = [
- {
- 'BACKEND': 'django.template.backends.django.DjangoTemplates',
- 'DIRS': [os.path.join(BASE_DIR, 'html')],
- ...
- # 数据库配置
- DATABASES = {
- 'default': {
- # 'ENGINE': 'django.db.backends.sqlite3',
- # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
- 'ENGINE': 'django.db.backends.mysql', # 数据库引擎
- 'NAME': 'dj_e_db', # 数据库名
- 'USER': 'root', # 账户名
- 'PASSWORD': 'root', # 密码
- 'HOST': 'localhost', # 主机
- 'PORT': '3306', # 端口
- }
- }
- # 语言和时区配置
- LANGUAGE_CODE = 'zh-Hans'
- TIME_ZONE = 'Asia/Shanghai'
2、跨域请求
参考:https://www.jianshu.com/p/24945ee1ec05
pip安装django-cors-headers,解决异步跨域被禁言的问题。
需要settings.py 进行配置。
四、效果截图
确定后,
python的前后端分离(一):django+原生js实现get请求的更多相关文章
- 海纳百川无所不容,Win10环境下使用Docker容器式部署前后端分离项目Django+Vue.js
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_179 随着现代化产品研发的不断推进,我们会发现,几乎每个产品线都会包含功能各异的服务,而且服务与服务之间存在也会存在着错综复杂的依 ...
- Win10环境前后端分离项目基于Vue.js+Django+Python3实现微信(wechat)扫码支付流程(2021年最新攻略)
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_182 之前的一篇文章:mpvue1.0+python3.7+Django2.0.4实现微信小程序的支付功能,主要介绍了微信小程序内 ...
- springMVC前后端分离开发模式下支持跨域请求
1.web.xml中添加cors规则支持(请修改包名) <filter> <filter-name>cors</filter-name> <filter-cl ...
- 【转】python+django+vue搭建前后端分离项目
https://www.cnblogs.com/zhixi/p/9996832.html 以前一直是做基于PHP或JAVA的前后端分离开发,最近跟着python风搭建了一个基于django的前后端分享 ...
- python+django+vue搭建前后端分离项目
以前一直是做基于PHP或JAVA的前后端分离开发,最近跟着python风搭建了一个基于django的前后端分享项目 准备工作:IDE,[JetBrains PyCharm2018][webpack 3 ...
- python django框架+vue.js前后端分离
本文用于学习django+vue.js实现web前后端分离协作开发.以一个添加和删除数据库书籍应用为实例. django框架官方地址:https://www.djangoproject.com/ vu ...
- 巨蟒python全栈开发flask8 MongoDB回顾 前后端分离之H5&pycharm&夜神
1.MongoDB回顾 .启动 mongod - 改变data/db位置: --dbpath D:\data\db mongod --install 安装windows系统服务 mongod --re ...
- Python Flask高级编程之RESTFul API前后端分离精讲 (网盘免费分享)
Python Flask高级编程之RESTFul API前后端分离精讲 (免费分享) 点击链接或搜索QQ号直接加群获取其它资料: 链接:https://pan.baidu.com/s/12eKrJK ...
- 解决Django+Vue前后端分离的跨域问题及关闭csrf验证
前后端分离难免要接触到跨域问题,跨域的相关知识请参:跨域问题,解决之道 在Django和Vue前后端分离的时候也会遇到跨域的问题,因为刚刚接触Django还不太了解,今天花了好长的时间,查阅了 ...
随机推荐
- 第三百九十八节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署CentOS6.5系统环境设置
第三百九十八节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署CentOS6.5系统环境设置 1.Linux安装配置 注意事项: 虚拟机网卡桥接模式 不要拨VPN 如果,网络怎么都 ...
- django 同步数据库出现 No changes detected 的可能原因
在使用 python manage.py makemigrations时候会出现:No changes detected 的错误. 造成这个错误的原因可能有很多. 我这里遇到这个错误的原因是:migr ...
- [IR] Time and Space Efficiencies Analysis of Full-Text Index Techniques
文章阅读:全文索引技术时空效率分析 LIU Xiao-ZhuPENG Zhi-Yong 根据全文索引实现技术的不同,将其分为三大类: 索引技术 (倒排文件.签名文件 .后缀树与后缀数组) 压缩与索引混 ...
- [PHP] 05 - Cookie & Session
故事背景 同 http, html, REST API 一样属于基础性的知识内容. [Node.js] 07 - Html and Http [Node.js] 08 - Web Server and ...
- [Node.js] 02 - Read Eval Print Loop
视频课程:带你入门Nodejs,提及了非常多的后端知识点 发布时间: 2017年10月7日 课程时长:193 分钟 类别:后端 课时:22 npm Resource: npm模块管理器[阮一峰] np ...
- IntellIJ IDEA 启动 参数 配置
系统环境: 型号名称: MacBook Pro型号标识符: MacBookPro11,4处理器名称: Intel Core i7处理器速度: 2.8 GHz处理器数目: 1核总数: 4L2 缓存(每个 ...
- go语言内置基础类型
1.数值型(Number) 三种:整数型.浮点型和虚数型(有符号整数表示整数范围 -2n-1~2n-1-1:无符号整数表示整数范围 0~2n-1) go内置整型有:uint8, uint16, uin ...
- 9.28 Django博客项目(一)
2018-9-28 17:37:18 今天把博客项目 实现了注册和添加图片的功能! 放在了自己的github上面 源码! https://github.com/TrueNewBee/bbs_demo ...
- jenkins管理
1.1 重启,重载,关闭 http://10.0.0.51:8080/jenkins/restart 重启 http://10.0.0.51:8080/jenkins/reload ...
- zabbix监控主机CPU使用率
zaibix默认模板针对CPU只有监控负载(load)没有监控CPU使用率 选择配置-模板-Template OS Windows-监控项 创建监控项 创建监控图形 查看图像结果