{"id":237,"date":"2024-06-29T21:41:58","date_gmt":"2024-06-29T13:41:58","guid":{"rendered":"http:\/\/www.chan.ink\/?p=237"},"modified":"2024-06-29T21:43:59","modified_gmt":"2024-06-29T13:43:59","slug":"%e6%88%90%e5%8a%9f%e9%83%a8%e7%bd%b2python-web%e9%a1%b9%e7%9b%ae","status":"publish","type":"post","link":"http:\/\/www.chan.ink\/index.php\/2024\/06\/29\/%e6%88%90%e5%8a%9f%e9%83%a8%e7%bd%b2python-web%e9%a1%b9%e7%9b%ae\/","title":{"rendered":"\u6210\u529f\u90e8\u7f72python web\u9879\u76ee"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">\u5386\u65f6\u4e24\u5929\uff0c\u53cd\u590d\u770b\u89c6\u9891\uff0c\u5404\u79cd\u7a00\u5947\u53e4\u602a\u7684\u9519\u8bef\uff0c\u7ec8\u4e8e\u90e8\u7f72\u6210\u529f\u4e86\u3002\u7b80\u8981\u8bb0\u5f55\u90e8\u7f72\u8fc7\u7a0b\u53ca\u76f8\u5173\u6ce8\u610f\u4e8b\u9879<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1318\" height=\"687\" src=\"http:\/\/www.chan.ink\/wp-content\/uploads\/2024\/06\/1719668619638.png\" alt=\"\" class=\"wp-image-241\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e00\u3002\u5b89\u88c5python<br>\u4e8c\u3002\u5b89\u88c5\u865a\u62df\u73af\u5883<br>\u4e09\u3002\u5b89\u88c5uwsgi<br>\u56db\u3002\u5b89\u88c5nginx<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e00\u3002\u5b89\u88c5python<br>1.\u5b89\u88c5gcc<br>yum install gcc -y<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">2.\u5b89\u88c5python\u4f9d\u8d56<br>yum install zlib zlib-devel -y<br>yum install bzip2 bzip2-devel -y<br>yum install ncurses ncurses-devel -y<br>yum install readline readline-devel -y<br>yum install openssl openssl-devel -y<br>yum install xz lzma xz-devel -y<br>yum install sqlite sqlite-devel -y<br>yum install gdbm gdbm-devel -y<br>yum install tk tk-devel -y<br>yum install mysql-devel -y<br>yum install python-devel -y<br>yum install libffi-devel -y<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">yum install tar -y<br>yum install make -y<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">3.\u4e0b\u8f7d\u6e90\u7801<br>wget https:\/\/www.python.org\/ftp\/python\/3.9.5\/Python-3.9.5.tgz<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">4.\u89e3\u538b&amp;\u7f16\u8bd1&amp;\u5b89\u88c5<br>tar -xvf Python-3.9.5.tgz<br>cd Python-3.9.5<br>.\/configure<br>make all<br>make install<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">5.python\u89e3\u91ca\u5668\u914d\u7f6e\u8c46\u74e3\u6e90<br>pip3.9 config set global.index-url https:\/\/pypi.douban.com\/simple\/<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e8c\u3002\u5b89\u88c5\u865a\u62df\u73af\u5883<br>1.\u5b89\u88c5virtualenv<br>pip3.9 install virtualenv<br>pip3.9 install virtualenv -i https:\/\/mirrors.aliyun.com\/pypi\/simple\/<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">2.\u521b\u5efa\u865a\u62df\u73af\u5883<br>\u4ee3\u7801\uff1a<br>\/data\/www\/day28<br>\u73af\u5883\uff1a<br>\/envs\/nb<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">mkdir \/envs<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">virtualenv \/envs\/nb &#8211;python=python3.9<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">3.\u6fc0\u6d3b\u865a\u62df\u73af\u5883<br>source \/envs\/nb\/bin\/activate<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5b89\u88c5\u9879\u76ee\u4f9d\u8d56\u7684pip\u5305<br>pip install flask<br>pip install flask -i https:\/\/mirrors.aliyun.com\/pypi\/simple\/<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e09\u3002\u5b89\u88c5uwsgi<br>1.\u5728\u865a\u62df\u73af\u5883\u4e0b\u5b89\u88c5<br>source \/envs\/nb\/bin\/activate<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">pip install uwsgi<br>pip install uwsgi -i https:\/\/mirrors.aliyun.com\/pypi\/simple\/<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">2.\u57fa\u4e8euwsgi\u8fd0\u884cflask\u9879\u76ee<br>cd \u9879\u76ee\u76ee\u5f55<br>cd \/data\/www\/day28\/<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8212;\u547d\u4ee4\u7684\u65b9\u5f0f<br>uwsgi &#8211;http:80 &#8211;wsgi-file app.py &#8211;callable app<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8212;\u914d\u7f6e\u6587\u4ef6\u7684\u65b9\u5f0f\uff08\u63a8\u8350\uff09<br>nb_uwsgi.ini<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[uwsgi]<app-translate-content _nghost-ng-c1676165236=\"\" class=\"eusoft-translate-container-span-en ng-star-inserted\"><span _ngcontent-ng-c1676165236=\"\" class=\"eusoft-eudic-chrome-extension-translate-content\"><span _ngcontent-ng-c1676165236=\"\" class=\"eusoft-eudic-chrome-extension-translate-white-space ng-star-inserted\">\u00a0<\/span><span _ngcontent-ng-c1676165236=\"\" class=\"eusoft-eudic-translate-loading-tag ng-star-inserted\" data-eusoft-eudic-loading-template-original-text=\"[uwsgi]\"><\/span><\/span><\/app-translate-content><br>socket=127.0.0.1:8001<app-translate-content _nghost-ng-c1676165236=\"\" class=\"eusoft-translate-container-span-en ng-star-inserted\"><span _ngcontent-ng-c1676165236=\"\" class=\"eusoft-eudic-chrome-extension-translate-content\"><span _ngcontent-ng-c1676165236=\"\" class=\"eusoft-eudic-chrome-extension-translate-white-space ng-star-inserted\">\u00a0<\/span><span _ngcontent-ng-c1676165236=\"\" class=\"eusoft-eudic-translate-loading-tag ng-star-inserted\" data-eusoft-eudic-loading-template-original-text=\"socket=127.0.0.1:8001\"><\/span><\/span><\/app-translate-content><br>chdir=\/data\/www\/day28\/<app-translate-content _nghost-ng-c1676165236=\"\" class=\"eusoft-translate-container-span-en ng-star-inserted\"><span _ngcontent-ng-c1676165236=\"\" class=\"eusoft-eudic-chrome-extension-translate-content\"><span _ngcontent-ng-c1676165236=\"\" class=\"eusoft-eudic-chrome-extension-translate-white-space ng-star-inserted\">\u00a0<\/span><span _ngcontent-ng-c1676165236=\"\" class=\"eusoft-eudic-translate-loading-tag ng-star-inserted\" data-eusoft-eudic-loading-template-original-text=\"chdir=\/data\/www\/day28\/\"><\/span><\/span><\/app-translate-content><br>wsgi-file=app.py<app-translate-content class=\"eusoft-translate-container-span-en ng-star-inserted\" _nghost-ng-c1676165236=\"\"><span class=\"eusoft-eudic-chrome-extension-translate-content\" _ngcontent-ng-c1676165236=\"\"><span _ngcontent-ng-c1676165236=\"\" class=\"eusoft-eudic-chrome-extension-translate-white-space ng-star-inserted\">\u00a0<\/span><span _ngcontent-ng-c1676165236=\"\" class=\"eusoft-eudic-translate-loading-tag ng-star-inserted\" data-eusoft-eudic-loading-template-original-text=\"wsgi-file=app.py\"><\/span><\/span><\/app-translate-content><br>callable=app         #\u8fd9\u91cc\u7684app\u5c31\u662fapp\uff0c\u4e0d\u8981\u5199\u6210\u5176\u4ed6\uff0c\u4ed6\u5bf9\u5e94\u7684\u662fpy\u6587\u4ef6\u91cc\u9762\u7684\u90a3\u4e2aapp.run\u7684app<app-translate-content _nghost-ng-c1676165236=\"\" class=\"eusoft-translate-container-span-en ng-star-inserted\"><span _ngcontent-ng-c1676165236=\"\" class=\"eusoft-eudic-chrome-extension-translate-content\"><span _ngcontent-ng-c1676165236=\"\" class=\"eusoft-eudic-chrome-extension-translate-white-space ng-star-inserted\">\u00a0<\/span><span _ngcontent-ng-c1676165236=\"\" class=\"eusoft-eudic-translate-loading-tag ng-star-inserted\" data-eusoft-eudic-loading-template-original-text=\"callable=app\"><\/span><\/span><\/app-translate-content><br>processes=1<app-translate-content _nghost-ng-c1676165236=\"\" class=\"eusoft-translate-container-span-en ng-star-inserted\"><span _ngcontent-ng-c1676165236=\"\" class=\"eusoft-eudic-chrome-extension-translate-content\"><span _ngcontent-ng-c1676165236=\"\" class=\"eusoft-eudic-chrome-extension-translate-white-space ng-star-inserted\">\u00a0<\/span><span _ngcontent-ng-c1676165236=\"\" class=\"eusoft-eudic-translate-loading-tag ng-star-inserted\" data-eusoft-eudic-loading-template-original-text=\"processes=1\"><\/span><\/span><\/app-translate-content><br>virtualenv=\/envs\/nb\/<app-translate-content _nghost-ng-c1676165236=\"\" class=\"eusoft-translate-container-span-en ng-star-inserted\"><span _ngcontent-ng-c1676165236=\"\" class=\"eusoft-eudic-chrome-extension-translate-content\"><span _ngcontent-ng-c1676165236=\"\" class=\"eusoft-eudic-chrome-extension-translate-white-space ng-star-inserted\">\u00a0<\/span><span _ngcontent-ng-c1676165236=\"\" class=\"eusoft-eudic-translate-loading-tag ng-star-inserted\" data-eusoft-eudic-loading-template-original-text=\"virtualenv=\/envs\/nb\/\"><\/span><\/span><\/app-translate-content><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">uwsgi &#8211;ini nb_uwsgi.ini<br>\u505c\u6b62\u7684\u8bdd\u6309\u4e0bctrl+c<br>\u5982\u679c\u60f3\u8ba9\u4ed6\u4ee5\u540e\u53f0\u7684\u65b9\u5f0f\u8fd0\u884c<br>uwsgi &#8211;ini nb_uwsgi.ini<br>-\u505c\u6b62<br>ps -ef|grep nb_uwsgi<br>kill -9 12648<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u56db\u3002Nginx<br>1.\u5b89\u88c5<br>yum install nginx -y<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">2.\u914d\u7f6e<br>-\u666e\u901a\u8bf7\u6c42\uff0c\u8f6c\u53d1\u7ed98001\u7aef\u53e3<br>-\/static\/ \/data\/www\/webapp\/static<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">nginx\u7684\u9ed8\u8ba4\u914d\u7f6e\u6587\u4ef6\u8def\u5f84 \/etc\/nginx\/nginx.conf<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">3.\u542f\u52a8<br>&#8211;\u542f\u52a8<br>systemctl start nginx<br>systemctl stop nginx<br>systemctl restart nginx<br>&#8211;\u5f00\u673a\u542f\u52a8<br>systemctl enable nginx<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">4.\u8bbf\u95ee<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5386\u65f6\u4e24\u5929\uff0c\u53cd\u590d\u770b\u89c6\u9891\uff0c\u5404\u79cd\u7a00\u5947\u53e4\u602a\u7684\u9519\u8bef\uff0c\u7ec8\u4e8e\u90e8\u7f72\u6210\u529f\u4e86\u3002\u7b80\u8981\u8bb0\u5f55\u90e8\u7f72\u8fc7\u7a0b\u53ca\u76f8\u5173\u6ce8\u610f\u4e8b\u9879 \u4e00\u3002\u5b89\u88c5python [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-237","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/www.chan.ink\/index.php\/wp-json\/wp\/v2\/posts\/237","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.chan.ink\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.chan.ink\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.chan.ink\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.chan.ink\/index.php\/wp-json\/wp\/v2\/comments?post=237"}],"version-history":[{"count":3,"href":"http:\/\/www.chan.ink\/index.php\/wp-json\/wp\/v2\/posts\/237\/revisions"}],"predecessor-version":[{"id":242,"href":"http:\/\/www.chan.ink\/index.php\/wp-json\/wp\/v2\/posts\/237\/revisions\/242"}],"wp:attachment":[{"href":"http:\/\/www.chan.ink\/index.php\/wp-json\/wp\/v2\/media?parent=237"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.chan.ink\/index.php\/wp-json\/wp\/v2\/categories?post=237"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.chan.ink\/index.php\/wp-json\/wp\/v2\/tags?post=237"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}