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

背景

最近想build个app,不可避免的就需要服务端的支持,而作为一名iOS开发者,除了OC和Swift,最熟悉的就是python了,虽然已经有大佬写了个框架能让Swift编写服务端程序,但是还是比较小众,而且需要额外地配置环境,因此就不作考虑了,于是开始尝试用python写一个服务端程序。

Flask

首先尝试使用了一下Flask,Flask是一款轻量级的Web应用框架,从安装到使用非常便捷,这里贴上中文文档

安装

ruby 复制代码
$ pip install Flask

使用

python 复制代码
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)

运行

ruby 复制代码
$ python3 'python文件路径'

这时服务就运行到服务器的1111端口上了。

访问

可以通过浏览器访问服务,服务器地址+端口+'/api/hello', 如:http://192.168.0.123:1111/api/hello,这里要记得放行你所设置的端口

到这里就简单的搭建好了服务。但要为我的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类,可以很便捷地操作数据库

话不多说,开始搭建

安装

ruby 复制代码
$ pip install Django

这里由于我的服务器系统,后面运行的时候出了点问题,查阅Django的issue才知道,由于我的服务器安装的是CentOS7,自带的sqlite版本是3.7.17,且是无法升级的,而Django从2.2版本开始就已经不支持低于3.8.3的sqlite版本了,很明显路只有两条,要么升级服务器的系统版本,要么安装低版本的Django,果断选择后者

ini 复制代码
$ pip install Django==2.1.15

检查一下是否安装成功

css 复制代码
$ python3 -m django --version

顺利打出版本号

创建应用

javascript 复制代码
$ 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所创建的应用

这时我们通过VSCode的远程资源管理器更改里面的代码的话可能会遇到权限问题,处理一下

bash 复制代码
sudo chown -R username path

使用

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

python 复制代码
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,配置一下服务器地址

python 复制代码
ALLOWED_HOSTS = ['192.168.0.123']

运行

ruby 复制代码
$ sudo python3 manage.py runserver 0.0.0.0:1111

运行成功,而且还发现Django帮我们配置好了splite数据库

访问

同样的,可以通过浏览器访问服务,服务器地址+端口+'/api/hello', 如:http://192.168.0.123:1111/api/hello,这里要记得放行你所设置的端口

自此Django就已经在服务器上搭建好了!

相关推荐
数据智能老司机6 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机7 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机7 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机7 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i7 小时前
drf初步梳理
python·django
每日AI新事件7 小时前
python的异步函数
python
这里有鱼汤9 小时前
miniQMT下载历史行情数据太慢怎么办?一招提速10倍!
前端·python
databook18 小时前
Manim实现脉冲闪烁特效
后端·python·动效
程序设计实验室18 小时前
2025年了,在 Django 之外,Python Web 框架还能怎么选?
python
倔强青铜三20 小时前
苦练Python第46天:文件写入与上下文管理器
人工智能·python·面试