検索
ホームページバックエンド開発Python チュートリアルubuntu での Python+tornado+supervisor+nginx のデプロイメント

以前に病院で収集したデータは写真で撮影した処方箋の写真であったため、使用する必要があるのはテキスト形式の処方箋です。そこで、私は過去 2 週間で、サーバーの写真をユーザーに表示し (当時は何人かの人材を雇っていました)、ユーザーが写真に基づいてテキスト情報を入力できるようにする小さなプログラムを書きました。

以前はJavaでWebページを書いていたのですが、最近機械学習を学ぶためにPythonを使おうと思い、また、新しいものを使いたかったので、プログラムが比較的小さかったので、Pythonを使用して作成することを検討しました。ストレージに mongodb を使用します (実際には必要ありませんが)。

基本的なアーキテクチャは次のとおりです: (バックエンド言語) Python + (Web フレームワークと Web サーバー) tornado + (データベース) mongodb + (プロセス管理) スーパーバイザー + (リバース プロキシ) nginx

(1) Python: Liao Xuefeng の Python チュートリアルを見ています

基本的な文をいくつか学び、理解できない場合はもう一度確認してください。

(2) トルネード: このチュートリアルを見てから学習を始めました

tornado は非常に高速に使用でき、Spring のフォワーダーのようにリクエストを直接マッピングしたり、Tomcat のように特定のポートで http リクエストを直接監視したりできます。get メソッドと post メソッドを記述するだけで済みます。 。

残りはJava Webとほぼ同じです。 springMVC や Hibernate のフレームワークを使わずに、自分で Python パッケージにコントローラー、サービス、Dao を階層化することができます。

(3) mongodb: 非リレーショナル データベース。テーブル (mongodb ではコレクションと呼ばれます) 内のデータの各行 (mongodb ではドキュメントと呼ばれます) が同じフィールド名を持つ必要はありません。多かれ少なかれ、それは同時に変化する可能性があります。もう 1 つのポイントは、トランザクションがサポートされておらず、Python で複数の読み取りおよび書き込みステートメントを実行するときにロールバックする方法がないため、プログラムの同時実行によって引き起こされる問題を防ぐ方法を見つける必要があることです。

たとえば、ステータスが 0 のドキュメントをコレクションから見つけて 1 に更新する必要があります。これは、ユーザーが変更を行った後、ステータスを 2 に設定して元に戻すことを意味します。ここで、0 は閲覧しないことを意味し、1 は閲覧中を意味し、2 は変更されたことを意味します。この時点で、多くのユーザーがステータス 0 のデータを同時に取得した可能性があります。これは私たちの意図に反して、多くの人が同じデータを変更することを可能にします。 update_one を直接使用してドキュメントのステータスを 0 から 1 に変更し、ドキュメントを識別するための一意のフィールドを追加し、この一意のフィールドを使用してドキュメントを検索することもできます。現時点では、update_one が原因で他のユーザーはドキュメントを取得できません。時間が来るとロックされ、他の人はこのデータを取得できなくなります。

(4) スーパーバイザー: スーパーバイザーは Python で開発されたプロセス管理プログラムで、通常のコマンドをバックグラウンド デーモン プロセスに変換し、プロセスのステータスを監視できます。

インストール後、/etc/supervisor/conf.d ディレクトリに設定ファイル printprescription.conf を追加できます。設定例は次のとおりです。

リーリー
構成が完了したら、スーパーバイザー サービスを開いたり、閉じたり、再起動したりできます。 supervisorctl status を使用してプロセスのステータスを確認でき、関連するログ ファイルでエラー情報を確認することもできます

リーリー

(5) nginx: nginx は、ポート 80 を監視し、対応するリクエストを他のホストや他のポートに転送できます。ここで表示される画像のパスは、tornado の静的パスではありません (静的パスは、Tornado に使用されます)。 js や css などのフロントエンド静的リソースを保存しますが、サーバー上の別の場所に保存されるため、nginx 転送を通じてイメージを取得できます。一方、他のポート (Tornado がリッスンする 8001 ポートなど) は通常ユーザーに公開されないため、転送には nginx が使用されます。さらに、location /static/ ディレクティブは、tornado にリクエストをプロキシする代わりに、静的ディレクトリ ファイルを直接提供するように nginx に指示します。nginx は、tornado よりも効率的に静的ファイルを提供できます。

nginx をインストールした後、関連する設定ファイルを確認し、次の文を見つけます: include /etc/nginx/sites-enabled/*。設定用にこのディレクトリに新しい設定ファイルを作成できます

リーリー
設定例は以下のとおりです。ここで最後のスラッシュを入力しないと、実際には「host」にアクセスしたときに上記の printprescription が追加されます。 /printprescription" とすると、Access "Host:8001/printprescription" に相当します。 Host:8001/ のリクエストを tornado にマッピングしたので、この時点では 404 が表示されます。

リーリー

 

(6)opencv:一个计算机视觉库,实现了图像处理和计算机视觉方面的很多通用算法。由于之前采集数据的时候在处方图片数据中混杂了人脸图片,所以采用oepncv里的算法检测人脸,如果是人脸则删除该记录。然而还是会残留一些人脸图片,需要人工清洗,这个数据好像之前有师兄清洗过,到时候拿过来重构一下数据库。

ps:安装opencv的时候imshow报错,虽然imshow用不到,但是强迫症使然,搞了我一天,来来回回装了十多次,最后还是没搞定,真是心力交瘁,特想吐嘈:垃圾opencv!毁我青春!颓我精神!耗我时间!磨我意志!浪费人生!!!

好吧我就随便说说,回头还要靠它干活。

cv2.error: /io/opencv/modules/highgui/src/window.<span style="color: #0000ff">cpp</span>:<span style="color: #800080">583</span>: error: (-<span style="color: #800080">2</span>) The <span style="color: #0000ff">function</span> is not implemented. Rebuild the library with Windows, GTK+ <span style="color: #800080">2</span>.x or Carbon support. If you are on Ubuntu or Debian, <span style="color: #0000ff">install</span> libgtk2.<span style="color: #800080">0</span>-dev and <span style="color: #0000ff">pkg-config</span>, <span style="color: #0000ff">then</span> re-run cmake or configure script <span style="color: #0000ff">in</span> <span style="color: #0000ff">function</span> cvShowImage

 

以上がubuntu での Python+tornado+supervisor+nginx のデプロイメントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
如何在 Ubuntu 和其他 Linux 下安装 IDLE Python IDE如何在 Ubuntu 和其他 Linux 下安装 IDLE Python IDEApr 08, 2023 pm 10:21 PM

IDLE(集成开发学习环境Integrated Development and Learning Environment)是一个 ​​Python IDE​​​,由 Python 语言本身编写,在 Windows 中通常作为 ​​Python 安装​​ 的一部分而安装。它是初学者的理想选择,使用起来很简单。对于那些正在学习 Python 的人,比如学生,它可以作为一个很好的 IDE 来开始使用。语法高亮、智能识别和自动补全等基本功能是这个 IDE 的一些特点。你可以随时在官方 ​​文档​​ 中了

聊聊Ubuntu中怎么切换多个 PHP 版本聊聊Ubuntu中怎么切换多个 PHP 版本Aug 30, 2022 pm 07:37 PM

如何在 Ubuntu 中切换多个 PHP 版本?下面本篇文章给大家介绍一下Ubuntu中切换多个 PHP 版本的方,希望对大家有所帮助!

ubuntu怎么重启nginx服务ubuntu怎么重启nginx服务May 23, 2023 pm 12:22 PM

1.使用快捷键【Ctrl+Alt+T】打开终端命令模式。2.可以通过以下方式重启nginx服务。方法一,在nginx可执行目录sbin下,输入以下命令重启/nginx-sreload#重启方法二,查找当前nginx进程号,然后输入命令:kill-HUP进程号,实现重启nginx服务#ps-ef|grepnginx#查找当前nginx进程号]#kill-TERM132#杀死nginx进程,132为nginx进程号

docker内ubuntu乱码怎么办docker内ubuntu乱码怎么办Nov 04, 2022 pm 12:04 PM

docker内ubuntu乱码的解决办法:1、通过“locale”查看本地使用的语言环境;2、通过“locale -a”命令查看本地支持的语言环境;3、在“/etc/profile”文件的结尾处添加“export LANG=C.UTF-8”;4、重新加载“source /etc/profile”即可。

ubuntu php无法启动服务怎么办ubuntu php无法启动服务怎么办Dec 19, 2022 am 09:46 AM

ubuntu php无法启动服务的解决办法:1、在php-fpm.conf里面设置错误日志;2、执行“/usr/sbin/php-fpm7.4 --fpm-config /etc/php/fpm/php-fpm.conf”命令;3、修改php的配置文件注释即可。

ubuntu没有php-fpm怎么办ubuntu没有php-fpm怎么办Feb 03, 2023 am 10:51 AM

ubuntu没有php-fpm的解决办法:1、通过执行“sudo apt-get”命令添加php的源地址;2、查看有没有php7的包;3、通过“sudo apt-get install”命令安装PHP;4、修改配置监听9000端口来处理nginx的请求;5、通过“sudo service php7.2-fpm start”启动“php7.2-fpm”即可。

Ubuntu如何删除无用的Linux内核Ubuntu如何删除无用的Linux内核May 14, 2023 pm 09:13 PM

查找无用的镜像首先,您可以检查当前使用的内核,您可以通过命令获得信息:uname-aa.例如,它在我的桌面上显示为:复制代码代码如下:magc@magc-desktop:~$uname-aLinuxmagc-desktop2.6.24-19-RT#1SMPpremptRTThu8月21日02:08336003UTC2008i686GNU/Linux然后通过查看这台机器上所有内核的列表来决定哪些需要删除:运行命令:复制代码代码如下:dpkg-get-selections|greplinux例如,我

Ubuntu下Nginx如何安装与配置Ubuntu下Nginx如何安装与配置May 17, 2023 am 11:01 AM

1.nginx介绍nginx是一个非常轻量级的http服务器,nginx,它的发音为“enginex”,是一个高性能的http和反向代理服务器,同时也是一个imap/pop3/smtp代理服务器。2.对php支持目前各种web服务器对php的支持一共有三种:(1)通过web服务器内置的模块来实现,例如apache的mod_php5,类似的apache内置的mod_perl可以对perl支持。(2)通过cgi来实现,这个就好比之前perl的cgi,该种方式的缺点是性能差,因为每次服务器遇到这些脚本

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター