Flask ist ein leichtes Python-Webframework, das einfach zu erlernen und zu verwenden ist und über eine sehr leistungsstarke und flexible Skalierbarkeit verfügt, was es zur ersten Wahl vieler Webentwickler macht. Nachdem wir Flask für die Webentwicklung verwendet und die Anwendung fertiggestellt haben, müssen wir die Anwendung auf dem Server bereitstellen. In diesem Artikel werden die Schritte und Techniken der Flask-Anwendungsbereitstellung vorgestellt und spezifische Codebeispiele bereitgestellt, die Ihnen den schnellen Einstieg erleichtern.
sudo apt-get update sudo apt-get install python3 python3-pip python3-venv
python3 -m venv venv
Unter diesen istvenv
der Name der virtuellen Umgebung und kann je nach Anwendungsbedarf ersetzt werden. Nach erfolgreicher Erstellung können Sie mit dem folgenden Befehl die virtuelle Umgebung aktivieren.venv
是虚拟环境的名称,可以根据应用需要自行替换。创建成功后,可以使用以下命令激活虚拟环境。
source venv/bin/activate
pip install -r requirements.txt
其中,requirements.txt
是存放依赖库名称和版本号的文件。可以使用以下命令来生成依赖库列表。
pip freeze > requirements.txt
config.py
文件,将配置信息写入其中。class Config: DEBUG = True SECRET_KEY = 'secret key' SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://username:password@localhost/db_name'
其中,SQLALCHEMY_DATABASE_URI
是连接数据库的URL。需要根据实际情况进行修改。
另外,在部署到服务器上时,需要将应用配置为生产模式,并禁止调试模式。可以在config.py
文件中添加以下配置。
class ProductionConfig(Config): DEBUG = False config = ProductionConfig()
在服务器上,还需要修改防火墙设置,将应用的端口打开。可以使用以下命令添加规则。
sudo ufw allow 5000
其中,5000
是应用的默认端口号,可以根据需要进行修改。
flask run --host=0.0.0.0 --port=5000
其中,--host
参数指定应用的IP地址,--port
参数指定应用的端口号。为了在外网访问应用,需要将0.0.0.0
替换为服务器的公网IP地址。
sudo apt-get install nginx
安装完成后,可以在/etc/nginx/sites-available
目录下创建一个配置文件,如myapp
。
server { listen 80; server_name example.com; root /path/to/app; location / { proxy_pass http://127.0.0.1:5000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location /static { alias /path/to/app/static; } }
其中,example.com
是服务器的域名或IP地址,/path/to/app
是应用的根目录。配置文件中,location /static
表示静态文件的路径,需要根据应用的需要进行修改。
创建配置文件后,还需要将其链接到/etc/nginx/sites-enabled
目录下,并重启Nginx。
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/ sudo nginx -s reload
sudo apt-get install supervisor
安装完成后,在/etc/supervisor/conf.d
目录下创建一个配置文件,如myapp.conf
。
[program:myapp] directory=/path/to/app command=/path/to/venv/bin/gunicorn -w 4 -b 127.0.0.1:5000 app:app user=user autostart=true autorestart=true redirect_stderr=true
其中,/path/to/app
是应用的根目录,/path/to/venv
是虚拟环境的根目录,user
是服务运行的用户。
创建配置文件后,可以使用以下命令启动Supervisor。
sudo supervisorctl reread sudo supervisorctl update sudo supervisorctl start myapp
其中,myapp
pip install gunicorn
gunicorn -w 4 -b 0.0.0.0:5000 app:app
requirements.txt
die Datei, die den Namen und die Versionsnummer der abhängigen Bibliothek speichert. Mit dem folgenden Befehl können Sie eine Liste abhängiger Bibliotheken erstellen.
Anwendung und Server konfigurieren
Vor der Bereitstellung müssen Sie die Anwendung und den Server konfigurieren. Zu den häufig verwendeten Konfigurationen gehören Datenbanken, E-Mails, Protokolle usw. Sie können eineconfig.py
-Datei im Stammverzeichnis der Anwendung erstellen und die Konfigurationsinformationen hineinschreiben. rrreeeUnter diesen ist
SQLALCHEMY_DATABASE_URI
die URL zum Herstellen einer Verbindung zur Datenbank. Es muss entsprechend der tatsächlichen Situation geändert werden. Außerdem muss die Anwendung bei der Bereitstellung auf dem Server im Produktionsmodus konfiguriert und der Debug-Modus deaktiviert sein. Die folgende Konfiguration kann in der Datei
config.py
hinzugefügt werden. rrreeeAuf dem Server müssen Sie außerdem die Firewall-Einstellungen ändern und den Anwendungsport öffnen. Regeln können mit dem folgenden Befehl hinzugefügt werden. rrreeeDabei ist
5000
die Standard-Portnummer der Anwendung, die nach Bedarf geändert werden kann.
--host
die IP-Adresse der Anwendung an, und der Parameter
--port
gibt die Portnummer der Anwendung an. Um über das externe Netzwerk auf die Anwendung zuzugreifen, müssen Sie
0.0.0.0
durch die öffentliche IP-Adresse des Servers ersetzen.
/etc/nginx/sites-available
erstellen, z. B.
myapp
. rrreeeUnter diesen ist
example.com
der Domänenname oder die IP-Adresse des Servers und
/path/to/app
das Stammverzeichnis der Anwendung. In der Konfigurationsdatei stellt
location /static
den Pfad der statischen Datei dar, die entsprechend den Anforderungen der Anwendung geändert werden muss. Nachdem Sie die Konfigurationsdatei erstellt haben, müssen Sie sie mit dem Verzeichnis
/etc/nginx/sites-enabled
verknüpfen und Nginx neu starten. rrreee
/etc/supervisor/conf.d
, z. B.
myapp.conf
. rrreeeUnter diesen ist
/path/to/app
das Stammverzeichnis der Anwendung,
/path/to/venv
das Stammverzeichnis der virtuellen Umgebung und
user
code> ist der Benutzer, unter dem der Dienst ausgeführt wird. Nachdem Sie die Konfigurationsdatei erstellt haben, können Sie Supervisor mit dem folgenden Befehl starten. rrreeeWobei
myapp
der Programmname der Konfigurationsdatei ist. Verwenden Sie Gunicorn, um die Leistung zu verbessernGunicorn ist ein Python-Webserver, der die Leistung und die gleichzeitigen Verarbeitungsfunktionen von Flask-Anwendungen verbessern kann. Gunicorn kann mit dem folgenden Befehl installiert werden. rrreeeNach Abschluss der Installation können Sie Gunicorn mit dem folgenden Befehl im Stammverzeichnis der Anwendung starten.
gunicorn -w 4 -b 0.0.0.0:5000 app:app
其中,-w
参数表示工作进程的数量,-b
参数表示绑定的IP地址和端口号,app:app
表示应用的模块名和应用对象。
Das obige ist der detaillierte Inhalt vonSchneller Einstieg: Schritte und Tipps für die Bereitstellung von Flask-Anwendungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!