查看原文
其他

用 Python 开发服务器「傻瓜式教程」

马超 DeveloperPython 2022-09-11

阅读本篇预计需要 6.66 分钟

建议初学者认真阅读,将例子跑起来

有一段时间没有更新技术类的文章了,再不分享技术文章手都生了。不过在分享这篇文章之前说一件事。

前两天我的一个读者群里面,有几个读者在讨论阿里云服务器的活动,说 3 年只需要 279 就能买到。

3 年才 279 瞬间让我很是惊讶,毕竟我的那个阿里云服务器一年都得 600 多。不过我看了之后才发现是新用户的福利,因为阿里云是实名认证的所以嫌麻烦我就没重新注册。

不过这个活动也促使了我的这次分享。

我相信我的读者里面还有很多人没有自己的服务器,毕竟身为一个开发人员没一个服务器连面子都挂不住,就算是放在那落灰。

但与其落灰那我还不如分享一个 Python 搭建服务器的教程,让你们也能搭建一套服务器。

关于这个活动,大家可以点击【阅读原文】。不过名额貌似是有限制的,那就先到先得呗。

好了,正式分享技术。

1、Python 服务器框架

相信玩过 Python 的读者,或多或少都知道 Python 提供了很多优秀的框架。例如网络类的 Requests、爬虫类的 Scrapy,当然服务器类的有 Flask、Django 。

不过这次我分享的是 Django 框架,用这套框架来搭建一个简单的服务器。

在开始之前,我们首先需要安装 Django。

安装也很简单,Python 提供了 pip 工具来帮助我们下载和安装组件。

pip install Django

就可以成功安装。

2、创建 Python 服务器

与其说创建 Python 服务器,不如说是创建一个 Django 项目。这样会更加准确点。

Django 安装成功之后,你的电脑就会有一个 django-admin.py 的可执行命令文件。我们可以用这个文件来创建我们的 Django 项目。

django-admin.py startproject HelloWorld

执行这行命令之后,就会在当前目录生成一个 Django 的项目。

接来下,我们来看看这个项目的结构:

项目结构清楚了,那我们就将这个服务运行起来。执行 python manage.py runserver 就可以将服务启动起来。

可以看到 Django 使用的是 8000 作为默认的端口。你也可以在 python manage.py runserver [端口名] 来修改端口。

酱紫就说明你的服务器正常跑起来了。

3、编写一个简单的接口

到这一步说明你的 Django 服务器已经能够正常运行了。

但别忘了我们要开发一个自己的服务器,所以到这里才算刚刚开始。接下来我会创建一个简单的接口来实现我们的需求:

提供一个计算加法的接口,让客户端(浏览器)可以进行简单的加法运算。请求方式为 GET 请求,地址为 /plus 。

a、在 HelloWorld 目录下的 HelloWorld 目录新建一个 plus.py 文件,在这个文件里面我们会实现一个加法运算。

from django.http import HttpResponse

def plus(request):
 # 拿到 a 和 b 的值
 a = request.GET['a']
 b = request.GET['b']
 c = int(a) + int(b)
 return HttpResponse(str(c))

b、加法实现的 py 文件编写好了之后,我们就需要在 urls.py 中配置我们的 api 映射

c、启动服务器,让这个接口生效

python manage.py runserver

如果之前你已经启动了,那么这里不用再重新启动。因为 Django 会自动重新部署。

d、我们通过浏览器来访问这个接口

好了,一个简单的计算接口就实现了。

4、编写一个像样的网页

上面的 API 虽说已经是一个“五脏俱全”的接口了,但总觉得缺点啥。缺一个像样的网页。

如果你也有这种感觉,那么就对了。

Django 为开发者提供了一套 HTML 的框架,也就是说你可以在 Django 的项目里面编写一套 html 来承载这些接口。

在 HelloWorld 的目录下创建一个 templates 的目录,在这里面我们可以写一些网页。

a、编写一个计算的页面

在 templates 目录下创建一个 plus.html ,内容为:

<!DOCTYPE html>
<html>

<head>
   <meta charset="utf-8">
   <title>DeveloperPython</title>
</head>

<body>
   <h1>这是 DeveloperPython 写的一个简单的加法!</h1>

   <form method="GET" action="/plus">
       <input name="a" type="text" value="1" /> +
       <input name="b" type="text" value="1" />
       <input name="submit" type="submit" value="等于" />
   </form>
</body>

</html>


b、编写一个展示计算结果的页面

在 templates 目录下创建一个 plusresult.html 内容为:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>DeveloperPython</title>
</head>
<body>
   <h1>这是 DeveloperPython 写的一个简单的加法!</h1>
   <p>结果为</p>
   {{ result}}
</body>
</html>

其中,用 {{}} 括起来的变量就可以通过 Django 来赋值。

c、编写 plus.py 接口实现的文件

from django.shortcuts import render_to_response

def plus(request):
   if 'a' not in request.GET:
       return render_to_response('plus.html')
   else:
       a = request.GET['a']
       b = request.GET['b']
       c = int(a) + int(b)
       return render_to_response('plusresult.html',{
           'result':str(c)
       })

如果 a 参数不在 GET 字段里面,那么就返回 plus.html 页面。

反之则取出 a b 两值并计算,最后通过 render_to_response 返回 plusresult.html 同时将 result 的值传进去。

这样我们就完成了一个简单的网页来实现加法运算。

5、最后

到这里,Django 中关于接口和模板的简单演示就完了。

其实 Django 还有个模型的概念,这个可以理解为一个数据模型。通过这个模型可以和数据库进行交互。

之前我在 Github 上开源了 服务器的代码,比上面这个例子复杂了一些。因为涉及到了数据库的处理,同时增加了很多逻辑。有兴趣的也可以去我的 Github 看看。

最重要的来了,快点击【阅读原文】买一个自己的服务器愉快的玩起来吧。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存