django restful mysql_如何用Django和restful搭建api接口服务
因为在一个项目需要接口服务。通过接口url可以实现写入和读取等功能。
django 搭建web服务
1)新建一个 django project
django-admin.py startproject project_name (例如本案例项目名为ads)
2)新建 app
python manage.py startapp app_name (例如本应用名为material)
一般一个项目有多个app, 当然通用的app也可以在多个项目中使用。
还得在工程目录的settings.py文件在配置
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework', #
'app_name',
]
在app/views.py下编写代码
def index(request):
return HttpResponse(u"你好")
在工程目录urls.py配置
from learn import views as learn_views
urlpatterns = [
url(r'^$', learn_views.index),
]
通过python manage.py runserver启动,就会看到我们输出的“你好”了
3)创建数据库表 或 更改数据库表或字段
在app下的models.py创建表
from django.db import models
class DeadWx(models.Model):
deadwx = models.CharField(max_length=100)
class Meta:
ordering = ['deadwx']
class CheckWx(models.Model):
did = models.CharField(max_length=50)
calltel = models.CharField(max_length=50)
user = models.CharField(max_length=500)
siteid = models.IntegerField()
agentid = models.IntegerField()
agentname = models.CharField(max_length=50)
wx = models.CharField(max_length=50)
status = models.CharField(max_length=50)
updatetime = models.CharField(max_length=50)
created_time = models.DateTimeField(auto_now_add=True)
class Meta:
ordering = ['-created_time']
运行命令,就可以生成对应的表
Django 1.7.1及以上 用以下命令
# 1. 创建更改的文件
python manage.py makemigrations
# 2. 将生成的py文件应用到数据库
python manage.py migrate
from django.db import models
在views.py文件里就可以获取数据库的数据
def create(request):
# 新建一个对象的方法有以下几种:
Person.objects.create(name='xiaoli', age=18)
# p = Person(name="WZ", age=23)
# p = Person(name="TWZ")
# p.age = 23
# p.save()
# 这种方法是防止重复很好的方法,但是速度要相对慢些,返回一个元组,第一个为Person对象,
# 第二个为True或False, 新建时返回的是True, 已经存在时返回False
# Person.objects.get_or_create(name="WZT", age=23)
s = Person.objects.get(name='xiaoli')
return HttpResponse(str(s))
写接口
接口使用rest_framework,rest_framework是一套基于Django 的 REST 框架,是一个强大灵活的构建 Web API 的工具包。
写接口三步完成:连接数据库、取数据、数据输出
1)连接数据库
在工程目录下的settings.py文件下配置, 需要提前安装好mysql或者mariadb等数据库。
DATABASES = {
# 'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
# }
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mysql',
'USER': 'root',
'HOST': '127.0.0.1', # localhost
'PASSWORD': '123', # 密码
'PORT': 3306,
# show variables like 'character_set_database';
# 修改字段字符编码
# alter table spiders_weibo modify text longtext charset utf8mb4 collate utf8mb4_unicode_ci;
'OPTIONS': {'charset': 'utf8mb4'},
}
}
创建一个序列化Serializer类
提供序列化和反序列化的途径,使之可以转化为,某种表现形式如json。我们可以借助serializer来实现,类似于Django表单(form)的运作方式。在app目录下,创建文件serializers.py。
django restful mysql_如何用Django和restful搭建api接口服务相关推荐
- django配置在MySQL_怎么在Django中安装与配置mysql
怎么在Django中安装与配置mysql 发布时间:2021-02-26 17:42:11 来源:亿速云 阅读:57 作者:Leah 本篇文章为大家展示了怎么在Django中安装与配置mysql,内容 ...
- Python Tornado搭建高并发Restful API接口服务
Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快能实现高并发.得利于其 非阻塞的方式和对epoll的运用,Torn ...
- 如何用车辆历史违章查询API接口进行快速开发
最近公司项目有一个车辆的历史违章查询显示的小功能,想着如果用现成的API就可以大大提高开发效率,所以在网上的API商店搜索了一番,发现了 APISpace,它里面的车辆历史违章查询API非常符合我的开 ...
- django restful 请求_利用 Django REST framework 构建 RESTful Web API
利用 Django REST framework 构建 RESTful Web API 终于到了动手操作的环节啦,这一节,我们以师生管理系统为例,带领大家搭建一套 framework Web API. ...
- Django框架深入了解_01(Django请求生命周期、开发模式、cbv源码分析、restful规范、跨域、drf的安装及源码初识)
阅读目录 一.Django请求生命周期: 二.WEB开发模式: 三.cbv源码分析: 四.认识RESTful 补充知识:跨域 五.基于原生django开发restful的接口 六.drf安装.使用.A ...
- python中redirect_详解如何用django实现redirect的几种方法总结
用django开发web应用, 经常会遇到从一个旧的url转向一个新的url.这种隐射也许有规则,也许没有.但都是为了实现业务的需要.总体说来,有如下几种方法实现 django的 redirect. ...
- Drf从入门到精通一(API接口、Postman、Restful规范、序列化、快速使用drf、CBV源码分析)
文章目录 一.前后端开发模式 二.API接口 三.接口测试工具Postman 四.Restful规范 五.序列化反序列化 六.DjangoRestFramework快速使用 七.CBV源码分析 一.前 ...
- Python Django框架学习07:Django表单
HTML表单是网站交互性的经典方式. 本章将介绍如何用Django对用户提交的表单数据进行处理. HTTP 请求 HTTP协议以"请求-回复"的方式工作.客户发送请求时,可以在请求 ...
- Django Python:完整的BUNDLE + Django真实项目2021
Django和python Bundle:从学习python的所有基础知识到高级python再到UI设计TKINTER,然后是Django 你会学到: 学习编程的基础知识 学习Python编程语言 学 ...
最新文章
- 2018年最后几天学什么?给你关注度最高的10篇文章
- 迁移 Nexus 软件仓库拾遗
- ErWin简单使用说明
- php建站静态,php网站如何生成静态
- 114. Flatten Binary Tree to Linked List 二叉树展开为链表
- watch 和 computed
- android 论坛_如何看待百度android吧萎靡现象与吧主的无所作为
- 软通动力华为java机考题库_华为机考笔试刷题-java-1
- spring+springmvc+hibernate 整合
- python小球弹弹弹_python实现弹跳小球
- keras 多GPU训练,单GPU权重保存和预测
- lucene创建索引的几种方式(一)
- python删除过期文件_python 删除过期文件的方法+源码
- linux的php探针使用,php探针在Linux下的安装过程
- docker视频教程 假装听听 应该还行
- Linux下设置桌面快捷方式(应用图标快速启动)
- 协同编辑--OT算法之外的世界
- 软考高级系统架构设计师系列论文二十四:论信息系统的安全风险
- html怎么画一个正方形,css3画一个正方体
- JavaWeb的体育用品商店的设计与实现
热门文章
- 产消合一。有感于华人新首富赵长鹏投资福布斯的话
- 桌面上计算机删除后怎么复原,电脑桌面上出现一个图标,删掉后重启桌面又恢复了?怎么才能彻底删除?...
- 银监会计算机专业考试,)(2015国家公务员考试银监会计算机专业考试分析
- Python入门经典笔记之安装numpy和matplotlib遇到的问题
- 神策杯 2018高校算法大师赛(个人、top2、top6)方案总结
- Android使用Google SMSRetrieverAPI监听短信
- 解决eso搜索优化问题 Vue 有对应的 Nuxt.js。
- 【Multisim仿真】全波整流电路仿真
- 为什么淘宝京东的首页这么快
- VCD零售/出租管理系统