前言

在Toolbox章节我们已经讲了Vapor的几种模板,可以点击以上链接去看.

MySQL模板

创建基于API模板的Vapor项目

这篇文章我们来讲下,如何改造一个默认API模板成为一个MySQL模板

vapor new VaporTemplateMySQL

或者

vapor new VaporTemplateMySQL --template=api

都是创建基于API模板的hello项目

改造成MySQL模板

Package.swift

改完之后的文件看起来应该是这样的

import PackageDescription

let package = Package(

name: "VaporTemplateMySQL",

targets: [

Target(name: "App"),

Target(name: "Run", dependencies: ["App"]),

],

dependencies: [

.Package(url: "https://github.com/vapor/vapor.git", majorVersion: 2),

//重点是把原来的fluent-provider换成下面这个

.Package(url: "https://github.com/vapor/mysql-provider.git", majorVersion: 2)

],

exclude: [

"Config",

"Database",

"Localization",

"Public",

"Resources",

]

)

重要!!!

更改完Package.swift文件之后记得运行swift package update命令,下载最新依赖包

Config+Setup.swift

在配置提供程序那行

import FluentProvider

/// Configure providers

private func setupProviders() throws {

try addProvider(FluentProvider.Provider.self)

}

换成

import MySQLProvider

/// Configure providers

private func setupProviders() throws {

try addProvider(MySQLProvider.Provider.self)

}

Config目录的配置文件

fluent.json

改完应该是这样的

{

"driver": "mysql"

}

mysql.json

原有Config目录下没有这个文件,你需要新建这个文件

{

"hostname": "你MySQL数据库的主机地址",

"user": "你MySQL数据库的用户名",

"password": "你MySQL数据库的密码",

"database": "你MySQL数据库的数据库名字"

}

Route.swift

添加引入代码

import MySQLProvider

添加以下代码获取数据库数据(仅作为示例添加,可自行书写修改)

get("userinfo") { req in

let name = req.data["name"]

if name == nil {

return try JSON(node: [

"data":"",

"msg" : "用户名为空",

"state":0

])

}

let mysqlDriver = try self.mysql()

let result = try mysqlDriver.raw("select * from users where username='" + (name?.string)! + "';")

let userinfo = result[0]

return try JSON(node: [

"data":userinfo,

"state":1,

"msg":"请求成功"

])

}

vapor mysql_基于Swift的Web框架Vapor2.0之MySQL模板相关推荐

  1. Kitura —— 基于 Swift 的 Web 框架

    Kitura,来自IBM的基于Swift的Web框架,也是一个HTTP服务器. 特性: URL路由(GET, POST, PUT, DELETE) URL参数 静态文件服务 支持FastCGI 支持S ...

  2. go语言 echo框架_如何在Go Echo Web框架中设置嵌套HTML模板

    go语言 echo框架 by Ying Kit Yuen 英杰苑 如何在Go Echo Web框架中设置嵌套HTML模板 (How to setup a nested HTML template in ...

  3. 基于Ajax的Web框架Echo2 2.0发布

    Echo2是一个基于Mozilla Public License的开源WEB框架.一个可以用于开发基于Web胖客户端应用程序的框架. ECHO2采用全新的AJAX(Asynchronous JavaS ...

  4. 基于python的web框架Flask实现SDEAM游戏商城设计 文档+前后台源码

    资源下载地址:https://download.csdn.net/download/sheziqiong/85660942 资源下载地址:https://download.csdn.net/downl ...

  5. 奖学金设计mysql_基于JAVA的奖学金评定系统设计与实现(MySQL)(含录像)

    基于JAVA的奖学金评定系统设计与实现(MySQL)(含录像)(任务书,开题报告,外文翻译,毕业论文10000字,程序代码,MySQL数据库,答辩PPT,答辩视频录像) 摘  要 本文论述了奖学金评定 ...

  6. java 仿qq mysql_基于Java远程通信(仿QQ)及应用研究设计(MySQL)(含录像)

    基于JAVA远程通信(仿QQ)及应用研究设计(MySQL)(含录像)(毕业论文13000字,程序代码,MySQL数据库) 随着信息社会脚步的日益加快,远程通信的应用正在人们的生产生活中扮演着极其重要的 ...

  7. AJAX框架构成设计,基于Ajax的Web框架设计与实现

    摘要: 随着Web技术的发展和人们对Web使用的要求越来越高,传统的交互方式一方面使用户觉得难以使用,体验感太差,另一方面也不利于开发人员进行开发和维护.所以当Web2.0概念被提出,就立即得到了广泛 ...

  8. pythonweb框架使用教程_Django视频教程 - 基于Python的Web框架(全13集)

    Django是由Python驱动的开源模型-视图-控制器(MVC)风格的Web应用程序框架,使用Django可以在即可分钟内快速开发一个高品质易维护数据库驱动的应用程序.下面是一大坨关于Django应 ...

  9. python eve mysql_基于python的REST框架eve测试与mongodb的数据操作

    Eve是一款Python的REST API框架,用于构建和部署高可定制的.全功能的RESTful的Web服务.Eve是一个开源项目,遵循BSD开源协议,已在Python 2.6.2.7以及Python ...

最新文章

  1. 生成随机测试数据的文件的程序
  2. ARTetris-AR版俄罗斯方块的源码解析
  3. 金融数据分析与挖掘实战4.1 Matplotlib(一)
  4. clickhouse 新增列_Clickhouse入门
  5. 2.开发Mip组件的第一个demo(点击关闭按钮,关闭外层dom)
  6. 【原创】昆虫棋离线复盘工具v1.5 更新(BoardSpace.net hive games reviewer)
  7. 好用的ASP.NET 分页类 简单好用 支持 AJAX 自定义文字
  8. 机器学习算法的Python实现 (1):logistics回归 与 线性判别分析(LDA)
  9. win10哪个版本打游戏好?win10游戏性能分析
  10. 数字时代带给孩子们的只有“冰冷”的科技吗?_数字体验_新浪博客
  11. 非主流照片制作软件 Picasa有哪些主要的功能
  12. Android 炫酷动画APP,21 款炫酷动画开源框架,照亮你的APP
  13. 海洋CMS忘记后台管理员密码解决方法
  14. [转载]汇编eax寄存器和AX,AH,AL之间的关系
  15. excel怎么调用c语言程序设计,知识:Excel使用C语言进行读写,代码简单易懂
  16. Python入门之基础知识(三)
  17. 生成二维码API接口,免费好用
  18. 软件版本alpha、beta、gamma等
  19. Compound Words
  20. 测试学习-119-使用Excel做好看的报告图

热门文章

  1. go-cqhttp,QQ机器人发语音+视频+表情+接入chatgpt
  2. 宏基蜂鸟sf515装虚拟机运行linux,宏碁蜂鸟Swift 5评测:轻奢触控本是怎样炼成的?...
  3. Presto RBO之谓词下推
  4. 计算机基础统考模拟系统,计算机应用基础(统考)模拟1
  5. 成功创业的8个关键点
  6. UE4中Ultra Dynamic Sky插件蓝图实现昼夜交替
  7. bs4.FeatureNotFound: Couldn‘t find a tree builder with the features you requested: lxml. Do you need
  8. 通过名字获得ssdt函数的序号
  9. CMMI认证中人员角色工作职责
  10. 大数据分析师是干什么的