背景

最近想build个app,不可避免的就需求服务端的支撑,而作为一名iOS开发者,除了OC和Swift,最熟悉的便是python了,尽管现已有大佬写了个结构能让Swift编写服务端程序,但是仍是比较小众,并且需求额外地装备环境,因而就不作考虑了,所以开端尝试用python写一个服务端程序。

Flask

首先尝试使用了一下Flask,Flask是一款轻量级的Web使用结构,从装置到使用非常快捷,这儿贴上中文文档

装置

$ pip install Flask

使用

from flask import Flask, jsonify, request
app = Flask(__name__)
# 示例路由:GET恳求
@app.route('/api/hello', methods=['GET'])
def hello():
    return jsonify({'message': 'Hello, World!'})
if __name__ == '__main__':
    app.run(host='0.0.0.0', port=1111)

运转

$ python3 'python文件途径'

快速搭建基于python的后端服务-Flask and Django
这时服务就运转到服务器的1111端口上了。

拜访

能够经过浏览器拜访服务,服务器地址+端口+’/api/hello’, 如:http://192.168.0.123:1111/api/hello,这儿要记住放行你所设置的端口

快速搭建基于python的后端服务-Flask and Django

到这儿就简略的建立好了服务。但要为我的app供给完好的服务,还需求用户体系、数据库等等的一些根底模块。关于数据库,Flask的文档有较为完好的教程,但是还需求去写一套数据库操作代码,这很明显是低效的,那有没有一个结构现已为咱们做好了上述的作业呢?

Django

Django是一款非常出色的web使用结构,旨在协助咱们用更少的代码更快地去编写更好的web端使用。Django官网:Django makes it easier to build better web apps more quickly and with less code. 有如Instagram、Spotify、Disqus也使用了Django

Django自带一套比较完善的用户体系,能够应对大部分关于账号的操作(登录、注册、登出、刊出)

且封装了一个Models类,能够很快捷地操作数据库

话不多说,开端建立

装置

$ pip install Django

这儿由于我的服务器体系,后边运转的时候出了点问题,查阅Django的issue才知道,由于我的服务器装置的是CentOS7,自带的sqlite版别是3.7.17,且是无法升级的,而Django从2.2版别开端就现已不支撑低于3.8.3的sqlite版别了,很明显路只要两条,要么升级服务器的体系版别,要么装置低版别的Django,果断选择后者

$ pip install Django==2.1.15

检查一下是否装置成功

$ python3 -m django --version

快速搭建基于python的后端服务-Flask and Django
顺畅打出版别号

创立使用

$ mkdir ~/DjangoApp //创立使用目录
$ cd ~/DjangoApp //途径到使用目录
$ sudo python3 -m django-admin startproject DjangoTest //创立一个名为'DjangoTest'的使用
// 在Django 2.1.15中,没有django-admin办法,应该用如下代码代替:
// $ sudo python3 -m django startproject DjangoTest

用VSCode的长途资源管理器拜访使用目录,便能够看到刚刚咱们用Django所创立的使用

快速搭建基于python的后端服务-Flask and Django

这时咱们经过VSCode的长途资源管理器更改里面的代码的话可能会遇到权限问题,处理一下

sudo chown -R username path

使用

翻开路由文件~/DjangoTest/urls.py,输入如下示例代码:

from django.contrib import admin
from django.urls import path
from django.http import JsonResponse
def hello(request):
    return JsonResponse({'message': 'Hello, World!'})
urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/hello', hello),
]

翻开设置文件~/DjangoTest/settings.py,装备一下服务器地址

ALLOWED_HOSTS = ['192.168.0.123']

运转

$ sudo python3 manage.py runserver 0.0.0.0:1111

快速搭建基于python的后端服务-Flask and Django
运转成功,并且还发现Django帮咱们装备好了splite数据库

快速搭建基于python的后端服务-Flask and Django

拜访

同样的,能够经过浏览器拜访服务,服务器地址+端口+’/api/hello’, 如:http://192.168.0.123:1111/api/hello,这儿要记住放行你所设置的端口

快速搭建基于python的后端服务-Flask and Django

自此Django就现已在服务器上建立好了!