超越村后端开发(3:安装djangorestframework+序列化+API开发前期准备)
1.安装djangorestframework
1.安装djangorestframework及其依赖包markdown、django-filter。
pip install djangorestframework markdown django-filter
2.在settings中注册,如下:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'users.apps.UsersConfig',
'wish.apps.WishConfig',
'user_operation.apps.UserOperationConfig',
'crispy_forms',
'xadmin',
'rest_framework'
]
2.序列化
1.在apps/users目录下新建serializers.py:
from rest_framework import serializers
from .models import UserProfile,WxUsers
class UserProfileModelSerializer(serializers.ModelSerializer):
class Meta:
model = UserProfile
fields="__all__"
class WxUsersModelSerializer(serializers.ModelSerializer):
class Meta:
model = WxUsers
fields="__all__"
class WxUsersAreaModelSerializer(serializers.ModelSerializer):
class Meta:
model = WxUsers
fields = ('gender', 'city', 'longitude', 'latitude')
2.在apps/wish目录下新建serializers.py:
from rest_framework import serializers
from .models import Wish,News,Images
class WishModelSerializer(serializers.ModelSerializer):
class Meta:
model = Wish
fields="__all__"
class NewsModelSerializer(serializers.ModelSerializer):
class Meta:
model = News
fields="__all__"
class ImagesModelSerializer(serializers.ModelSerializer):
class Meta:
model = Images
fields="__all__"
3.在apps/user_operation目录下新建serializers.py:
from rest_framework import serializers
from .models import Message,Pick,Share,Notice
class MessageModelSerializer(serializers.ModelSerializer):
class Meta:
model = Message
fields="__all__"
class PickModelSerializer(serializers.ModelSerializer):
class Meta:
model = Pick
fields="__all__"
class ShareModelSerializer(serializers.ModelSerializer):
class Meta:
model = Share
fields="__all__"
class NoticeModelSerializer(serializers.ModelSerializer):
class Meta:
model = Notice
fields="__all__"
3.API开发前期准备
1.在settings中注释掉csrf验证,保证post请求不会出现403
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
# 'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
2.跨域问题解决
1.安装django-cors-headers:
pip install django-cors-headers
2.在settings中注册:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'users.apps.UsersConfig',
'wish.apps.WishConfig',
'user_operation.apps.UserOperationConfig',
'crispy_forms',
'xadmin',
'rest_framework',
'corsheaders'
]
3.在settings中添加相关中间件:
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware', # 放到中间件顶部
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
# 'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
4.在settings.py中新增配置项:
CORS_ORIGIN_ALLOW_ALL = True
3.建立前端vue项目进行以备调试使用
1.前端环境配置
1.安装Node.js环境
2.安装cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
3.搭建vue开发环境
cnpm install --global vue-cli
2.PC前端项目
1.新建vue项目:
vue init webpack-simple test 一直回车 cd test cnpm install npm run dev

Ctrl+c键,退出运行状态
2.安装axios
cnpm install axios
3.搭建小程序前端项目
1.新建mpvue项目
vue init mpvue/mpvue-quickstart test1 回车 填入appid 一直回车
注意:项目不能新建在移动硬盘或者优盘等移动设备目录下,不然会报错:
Install fail! Error: EISDIR: illegal operation on a directory, symlink '......
2.然后按照提示,安装依赖
cd test1 cnpm installnpm run dev

效果图

3.对test1/src/index.vue做初始化:
<template>
<div>
{{title}}
</div>
</template>
<script>
export default {
data () {
return {
title: 'hello world'
}
},
methods: {
},
created () {
}
}
</script>
<style scoped>
</style>
效果图

Ctrl+c键,退出运行状态
4.注释掉项目目录下的 build目录下的 webpack.base.conf.js 的一些代码:
{
test: /\.(js|vue)$/,
loader: 'eslint-loader',
enforce: 'pre',
include: [resolve('src'), resolve('test')],
options: {
formatter: require('eslint-friendly-formatter')
}
},

5.勾选微信开发者工具的一些配置

超越村后端开发(3:安装djangorestframework+序列化+API开发前期准备)的更多相关文章
- 超越村后端开发(2:新建models.py+xadmin的引入)
1.新建Model 1.users数据 1.在apps/users/models.py中: from datetime import datetime from django.db import mo ...
- 超越村后端开发(4:API开发)
1.users相关的api开发 1.在settings中添加APPID,SECRET 2.在apps/users/views.py内: from chaoyuecun.settings import ...
- 超越村后端开发(5:远程同步本地与服务器端的MySQL数据库)
1.同步MySQL数据库 服务器选用的华为云,安装了Ubuntu18.04,华为云默认是以root用户登录的. 1.使用Xshell6连接华为云 ls 2.Ubuntu18.04安装MySQL5.7 ...
- Beaglebone Black开发板安装驱动
Beaglebone Black开发板安装驱动 Beaglebone Black开发板安装驱动,在使用Beaglebone Black开发板子做任何事情之前首先需要安装驱动.下面的内容就了展示在Win ...
- API开发管理平台eoLinker AMS 4.1版本发布:加入聚合空间,发布AMS专业版等
eoLinker AMS是集API文档管理.API自动化测试.开发协作三位一体的综合API开发管理平台,是中国最大的在线API管理平台. eoLinker AMS 4.1更新内容: 1.新增" ...
- 一.前后端分离及drf实现序列化的原理
为什么要进行前后端分离 可pc.app.pad多端适应 SPA开发模式的流行--单页web应用(只有一html页面) 可实现前后端开发职责清(不分离时,前端是通过后端给的变量并渲染出来方式拿到数据! ...
- django之djangorestframework序列化操作
只介绍序列化操作:serializers.ModelSerializer 与 serializers.Serializer 使用序列化的目的:将数据序列化成 JSON 对象 当页面上需要动态加载内容 ...
- Nginx+Python+uwsgi+Django的web开发环境安装及配置
Nginx+Python+uwsgi+Django的web开发环境安装及配置 nginx安装 nginx的安装这里就略过了... python安装 通常系统已经自带了,这里也略过 uwsgi安装 官网 ...
- Jeecg-Boot 开发环境准备(二):开发工具安装
目录索引: 后端开发工具 前端开发工具 Nodejs镜像 WebStorm入门配置 JeecgBoot采用前后端分离的架构,官方推荐开发工具 前端开发: Webstrom 或者 IDEA 后端开发: ...
随机推荐
- Jmeter分布式部署
当单机没有足够能力来模拟较重的负载,可以使用jmeter分布式测试功能, 通过一个Jmeter控制台来远程控制多个Jmeter引擎完成测试. 每个线程均独立运行测试计划.因此,线程组常用来模拟并发用户 ...
- 事务的四大特性(ACID):
事务的四大特性(ACID): 1.原子性(Atomicity): 事务中所有操作是不可再分割的原子单元.事务中所有操作要么都执行成功,要么都执行失败. 2.一致性(Consistency): 事 ...
- Exchange 2010邮件服务器的搭建和部署
Exchange主要是针对内部网或者企业网用户进行搭建的邮件服务器软件,利用它能够很快地搭建安全性较高的内部网邮件系统. 本次搭建在个人环境中实践,纯属爱好折腾,分四步骤,1.搭建windows 20 ...
- Storm入门(四)WordCount示例
一.关联代码 使用maven,代码如下. pom.xml 和Storm入门(三)HelloWorld示例相同 RandomSentenceSpout.java /** * Licensed to t ...
- 在html代码中js的script标签建议放在那里?
今天编写了一个简单的js代码,F12有错误,然后发现是<script>放的位置有问题.之前在我的印象当中,说的是这个标签放在哪里都可以,然而...并不是这样的,例如我现在练习的这个代码,写 ...
- 把python学的让自己成为智障的day14
智障的第14天,今天还是装饰器,这也是这个难点,装饰器也是函数的其中一种,所以需要有返回值才能返回到之后要执行的函数中,当然,作为函数可以在其中带上参数,装饰器只是比较特殊,自然也可以带参数,目前来说 ...
- AI 学习路线
[导读] 本文由知名开源平台,AI技术平台以及领域专家:Datawhale,ApacheCN,AI有道和黄海广博士联合整理贡献,内容涵盖AI入门基础知识.数据分析挖掘.机器学习.深度学习.强化学习.前 ...
- C++一些基本数据结构:字面常量、符号常量、枚举常量
常量:C++包括两种常量,字面常量和符号常量. 字面常量:指的是直接输入到程序中的值 比如:in myAge=26: myAge是一个int类型变量,而26是一个字面常量. 符号常量:指的是用名称表示 ...
- Oracle硬解析,软解析,软软解析介绍
Oracle数据库中的CURSOR分为两种类型:Shared Cursor 和 Session Cursor 1,Shared Cursor Oracle里的第一种类型的Cursor就是Shared ...
- Effective C++ 第0章 copy constructor和copy assignment operator
拷贝构造函数(copy constructor)被用来以一个对象来初始化同类型的另一个对象,拷贝赋值运算符(copy assignment operator)被用来将一个对象中的值拷贝到同类型的另一个 ...