Webanwendung mit Python + Flask ② ③

Fortsetzung von Letztes Mal.

  1. Vorbereitung der Umgebung (Betriebssystem-Setup)
  2. Vorbereitung der Umgebung (Einrichtung im Betriebssystem) ★
  3. Verfolgen Sie den Inhalt von Flask's Quick Start (Installation und minimale Einrichtung) ★
  4. Verfolgen Sie den Inhalt von Flask's Tutrial (lernen Sie, wie Sie eine grundlegende Anwendung erstellen)
  5. Erstellen Sie den Originalinhalt

Diesmal ein Memo, als ich 2. und 3 gemacht habe.

SSH-Berechtigungen für Root

In der Standardbox von CentOS ist der SSH-Zugriff als Root nicht möglich, und es ist erforderlich, sich mit dem privaten Schlüssel des vagabundierenden Benutzers zu authentifizieren. Dies kann mit vagrant ssh-config bestätigt werden.

2017/01/30 19:26:06|C:\Vagrant\CentOS0-2>vagrant ssh-config
Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile C:/Vagrant/CentOS0-2/.vagrant/machines/default/virtualbox/private_key
  IdentitiesOnly yes
  LogLevel FATAL

Da es schwierig ist, root einzeln zu promoten, erlauben Sie den SSH-Zugriff als root. Bearbeiten Sie zunächst die folgenden zwei Stellen mit sshd_config auf dem Gast. PermitRootLogin yes PasswordAuthentication yes

Der Zugang zu Gästen ist mit den folgenden Einstellungen möglich. SSH port: 2222 Benutzer: Landstreicher Privater Schlüssel: C: \ Vagrant \ CentOS0-2 \ .vagrant \ machine \ default \ virtualbox \ private_key

Verwenden Sie nach dem Anmelden su -, um root zu promoten (Passwort ist vagabundierend)

[root@cnenyuy5l3c ~]# cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.orig
[root@cnenyuy5l3c ~]# vi /etc/ssh/sshd_config
[root@cnenyuy5l3c ~]# diff /etc/ssh/sshd_config /etc/ssh/sshd_config.orig
42c42
< PermitRootLogin yes
---
> #PermitRootLogin yes
66c66
< PasswordAuthentication yes
---
> PasswordAuthentication no
[root@cnenyuy5l3c ~]#

Laden Sie als Nächstes den Gast neu, indem Sie Folgendes in die .Vagrant-Datei schreiben. config.ssh.username = 'root' config.ssh.password = 'vagrant' config.ssh.insert_key = 'true'

2017/01/30 19:41:18|C:\Vagrant\CentOS0-2>vagrant reload
==> default: Attempting graceful shutdown of VM...
    default: Guest communication could not be established! This is usually because
    default: SSH is not running, the authentication information was changed,
    default: or some other networking issue. Vagrant will force halt, if
    default: capable.
==> default: Forcing shutdown of VM...
==> default: Checking if box 'centos/6' is up to date...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 5000 (guest) => 5000 (host) (adapter 1)
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: root
    default: SSH auth method: password
==> default: Machine booted and ready!
[default] GuestAdditions 5.1.12 running --- OK.
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
    default: /vagrant => C:/Vagrant/CentOS0-2
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.

Python-Installation

Installieren Sie zunächst die erforderlichen Module.

[root@cnenyuy5l3c ~]# yum install openssl-devel
[root@cnenyuy5l3c ~]# yum install sqlite-devel
[root@cnenyuy5l3c ~]# yum groupinstall "Development tools"

Installieren Sie dann Python. Standardmäßig ist 2.6.6 enthalten, aber da es alt ist, ist das neueste (2.7.12) enthalten.

[root@cnenyuy5l3c ~]# python
Python 2.6.6 (r266:84292, Aug 18 2016, 15:13:37) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> quit()
[root@cnenyuy5l3c ~]# 
[root@cnenyuy5l3c ~]# curl -O https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tar.xz
[root@cnenyuy5l3c ~]# ls
anaconda-ks.cfg  install.log  install.log.syslog  Python-2.7.12.tar.xz
[root@cnenyuy5l3c ~]# xz -dv Python-2.7.12.tar.xz
[root@cnenyuy5l3c ~]# tar xvf Python-2.7.12.tar
[root@cnenyuy5l3c ~]# cd Python-2.7.12
[root@cnenyuy5l3c Python-2.7.12]# ./configure --prefix=/opt/local
[root@cnenyuy5l3c Python-2.7.12]# make && make altinstall
[root@cnenyuy5l3c Python-2.7.12]# ls -l /usr/bin/python*
-rwxr-xr-x. 2 root root 9032 Aug 18 15:14 /usr/bin/python
lrwxrwxrwx. 1 root root    6 Dec 15 11:11 /usr/bin/python2 -> python
-rwxr-xr-x. 2 root root 9032 Aug 18 15:14 /usr/bin/python2.6

[root@cnenyuy5l3c Python-2.7.12]# rm /usr/bin/python
rm: remove regular file `/usr/bin/python'? y
[root@cnenyuy5l3c Python-2.7.12]# 
[root@cnenyuy5l3c Python-2.7.12]# cp -p /opt/local/bin/python2.7 /usr/bin/python
[root@cnenyuy5l3c Python-2.7.12]# python
Python 2.7.12 (default, Jan 30 2017, 11:04:49) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> quit()
[root@cnenyuy5l3c Python-2.7.12]# 

Als Einschränkung funktioniert yum nur mit 2.6, daher sollte nur yum so eingestellt werden, dass es sich auf 2.6 bezieht.

[root@cnenyuy5l3c Python-2.7.12]# which yum
/usr/bin/yum
[root@cnenyuy5l3c Python-2.7.12]# vi /usr/bin/yum
[root@cnenyuy5l3c Python-2.7.12]# head -1 /usr/bin/yum
#!/usr/bin/python2.6

Installieren Sie danach virtualenv (und den Pip, mit dem es installiert wurde), um die Entwicklungsumgebung getrennt zu halten.

[root@cnenyuy5l3c Python-2.7.12]# curl -kL https://bootstrap.pypa.io/get-pip.py | /opt/local/bin/python2.7
[root@cnenyuy5l3c Python-2.7.12]# ls /opt/local/bin/
2to3  easy_install  easy_install-2.7  idle  pip  pip2  pip2.7  pydoc  python2.7  python2.7-config  smtpd.py  wheel
[root@cnenyuy5l3c Python-2.7.12]# cd ~
[root@cnenyuy5l3c ~]# vi .bashrc
[root@cnenyuy5l3c ~]# cat .bashrc

## CUSTOM START
export PATH=$PATH:/opt/local/bin/
## CUSTOM END

[root@cnenyuy5l3c ~]# 
[root@cnenyuy5l3c ~]# source .bashrc
[root@cnenyuy5l3c ~]# /opt/local/bin/pip2.7 install virtualenv

Führen Sie es durch den Pip-Pfad. Der letzte Test bisher.

[root@cnenyuy5l3c ~]# mkdir testpj
[root@cnenyuy5l3c ~]# cd testpj
[root@cnenyuy5l3c testpj]# 
[root@cnenyuy5l3c testpj]# 
[root@cnenyuy5l3c testpj]# virtualenv env
New python executable in /root/testpj/env/bin/python2.7
Also creating executable in /root/testpj/env/bin/python
Installing setuptools, pip, wheel...done.
[root@cnenyuy5l3c testpj]# ls
env
[root@cnenyuy5l3c testpj]# 
[root@cnenyuy5l3c testpj]# . env/bin/activate
(env) [root@cnenyuy5l3c testpj]# 
(env) [root@cnenyuy5l3c testpj]# python
Python 2.7.12 (default, Jan 30 2017, 11:04:49) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 
>>> quit()
(env) [root@cnenyuy5l3c testpj]# 
(env) [root@cnenyuy5l3c testpj]# deactivate
[root@cnenyuy5l3c testpj]#

Virtualenv wurde in Python 2.7 gestartet und gestoppt.

Kolbeninstallation

Installieren Sie den Kolben in virtualenv.

[root@cnenyuy5l3c testpj]# . env/bin/activate
(env) [root@cnenyuy5l3c testpj]#
(env) [root@cnenyuy5l3c testpj]# easy_install Flask

Erstellen Sie die folgende Test-App-Datei und starten Sie sie.

app.py


from flask import Flask
app = Flask(__name__)

@app.route(‘/’)
def hello_world():
    return "Hello World!"

if __name__ == '__main__':
    app.run(host='0.0.0.0')

Starte die Anwendung.

(env) [root@cnenyuy5l3c testpj]# python app.py
 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)

Greifen Sie auf dem Hostcomputer auf 5000 zu und überprüfen Sie den Vorgang. 20170130_008.jpg

Bis hierher für diese Zeit.

Recommended Posts

Webanwendung mit Python + Flask ② ③
Webanwendung mit Python + Flask ④
Entwicklung von Webanwendungen mit Flask
Anwendungsentwicklung mit Docker + Python + Flask
Analysieren und visualisieren Sie JSON (Webanwendung ⑤ mit Python + Flask)
[Python] Eine schnelle Webanwendung mit Bottle!
Einfache Web-App mit Python + Flask + Heroku
Führen Sie eine Python-Webanwendung mit Docker aus
Programmieren mit Python Flask
Webanwendung mit Python + Flask (unter Verwendung von VScode) # 1 - Aufbau einer virtuellen Umgebung-
Starten Sie einen Webserver mit Python und Flask
Web Scraping mit Python + JupyterLab
Erstellen Sie eine Webanwendung mit Django
Web-API mit Python + Falcon
Web Scraping Anfänger mit Python
Optimieren Sie die Websuche mit Python
Starten Sie mit Docker eine Python-Webanwendung auf Nginx + Gunicorn
Webanwendung erstellt mit Python3.4 + Django (Teil.1 Umgebungskonstruktion)
Hobby Web Engineer entwickelt Webanwendung mit Vue.js + Flask (& GCP)
Kurs zur Erstellung von Webanwendungen, der mit Flask of Python Teil 2 Kapitel 1 ~ JSON-Austausch ~ gelernt wurde
Mit Flask erstellte SNS Python-Grundlagen
Erstellen einer Webanwendung mit Flask ②
Erste Schritte mit Python-Webanwendungen
Web Scraping mit Python Erster Schritt
Ich habe versucht, WebScraping mit Python.
Überwachen Sie die Leistung von Python-Anwendungen mit Dynatrace ♪
Holen Sie sich Web-Screen-Capture mit Python
Erstellen Sie eine Webanwendung mit Django
Erstellen einer Webanwendung mit Flask ①
Erstellen einer Webanwendung mit Flask ③
Erstellen einer Webanwendung mit Flask ④
Anwendung von Python: Datenbereinigung Teil 2: Datenbereinigung mit DataFrame
Python x Flask x Tensorflow.Keras Web-App, die Katzenrassen vorhersagt 2
Ich habe eine einfache Buch-App mit Python + Flask ~ Introduction ~ erstellt
Webanwendung mit Python3.3.1 + Flasche (1) - Ändern Sie die Vorlagen-Engine in jinja2
[Python] Webanwendung von 0! Hands-on (2) -Hallo Welt-
[Python] Webanwendung von 0! Hands-on (3) -API-Implementierung-
FizzBuzz in Python3
Scraping mit Python
Die erste künstliche Intelligenz. Fordern Sie die Webausgabe mit Python heraus. ~ Kolbeneinführung
Lassen Sie uns eine WEB-Anwendung für das Telefonbuch mit Flasche Teil 1 erstellen
Statistik mit Python
Versuchen Sie es mit dem Webanwendungsframework Flask
Scraping mit Python
Python mit Go
Erstellen Sie mit Chalice eine flaschen- / flaschenähnliche Webanwendung auf AWS Lambda
Python x Flask x PyTorch Einfacher Aufbau einer Webanwendung zur Nummernerkennung
Erste Schritte mit Python Web Scraping Practice
POST verschieden mit Python und empfange mit Flask
Twilio mit Python
Lassen Sie uns eine WEB-Anwendung für das Telefonbuch mit Flasche Teil 2 erstellen
Spielen Sie mit 2016-Python
Dämonisieren Sie eine Python-Webanwendung mit Supervisor