Application Web avec Python + Flask ② ③

Suite de Dernière fois.

  1. Préparation de l'environnement (configuration du système d'exploitation)
  2. Préparation de l'environnement (configuration sous OS) ★
  3. Tracez le contenu du Quick Start de Flask (installation et configuration minimale) ★
  4. Tracez le contenu de Flask's Tutrial (apprendre à créer une application de base)
  5. Créez un contenu original

Cette fois, un mémo quand j'ai fait 2 et 3.

Autorisations SSH sur la racine

Dans la boîte par défaut de CentOS, l'accès ssh n'est pas possible en tant que root, et il est nécessaire de s'authentifier avec la clé privée de l'utilisateur vagrant. Cela peut être confirmé avec vagrant ssh-config.

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

Comme il est difficile de promouvoir root un par un, autorisez l'accès SSH en tant que root. Tout d'abord, modifiez les deux emplacements suivants avec sshd_config sur l'invité. PermitRootLogin yes PasswordAuthentication yes

L'accès aux invités est possible avec les paramètres suivants. SSH port: 2222 Utilisateur: vagrant Clé privée: C: \ Vagrant \ CentOS0-2 \ .vagrant \ machines \ default \ virtualbox \ private_key

Après vous être connecté, utilisez su - pour promouvoir root (le mot de passe est vagabond)

[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 ~]#

Ensuite, rechargez l'invité en écrivant ce qui suit dans le .Vagrantfile. 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.

Installation de Python

Tout d'abord, installez les modules prérequis.

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

Ensuite, installez Python. Par défaut, 2.6.6 est inclus, mais comme il est ancien, le dernier (2.7.12) est inclus.

[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]# 

En guise de mise en garde, yum ne fonctionne qu'avec 2.6, donc seul yum doit être configuré pour faire référence à 2.6.

[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

Après cela, installez virtualenv (et le pip utilisé pour l'installer) pour garder l'environnement de développement séparé.

[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

Passez-le par le chemin du pip. Le dernier test jusqu'à présent.

[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 a démarré et s'est arrêté dans Python 2.7.

Installation du flacon

Installez flask dans virtualenv.

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

Créez le fichier d'application de test suivant et démarrez-le.

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')

Lancez l'application.

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

Accédez à 5000 sur la machine hôte et vérifiez le fonctionnement. 20170130_008.jpg

Jusqu'à ici pour cette fois.

Recommended Posts

Application Web avec Python + Flask ② ③
Application Web avec Python + Flask ④
Développement d'applications Web avec Flask
Développement d'applications avec Docker + Python + Flask
Analyser et visualiser JSON (application Web ⑤ avec Python + Flask)
[Python] Une application web rapide avec Bottle!
Application Web facile avec Python + Flask + Heroku
Exécutez une application Web Python avec Docker
Programmation avec Python Flask
Application Web réalisée avec Python + Flask (en utilisant VScode) # 1-Construction d'environnement virtuel-
Lancer un serveur Web avec Python et Flask
Web scraping avec python + JupyterLab
Créer une application Web avec Django
API Web avec Python + Falcon
Web scraping débutant avec python
Rationalisez la recherche Web avec Python
Lancer une application Web Python sur Nginx + Gunicorn avec Docker
Application Web réalisée avec Python3.4 + Django (Construction de l'environnement Part.1)
Hobby Web Engineer développe une application Web avec Vue.js + Flask (& GCP)
Cours de production d'applications Web appris avec Flask of Python Partie 2 Chapitre 1 ~ Échange JSON ~
Bases de SNS Python faites avec Flask
Créer une application Web avec Flask ②
Premiers pas avec les applications Web Python
Web scraping avec Python Première étape
J'ai essayé webScraping avec python.
Surveillez les performances des applications Python avec Dynatrace ♪
Obtenez une capture d'écran Web avec python
Créer une application Web avec Django
Créer une application Web avec Flask ①
Créer une application Web avec Flask ③
Créer une application Web avec Flask ④
Application de Python: Nettoyage des données Partie 2: Nettoyage des données à l'aide de DataFrame
Application Web Python x Flask x Tensorflow.Keras qui prédit les races de chats 2
J'ai créé une application de livre simple avec python + Flask ~ Introduction ~
Application Web avec Python3.3.1 + Bottle (1) - Changer le moteur de modèle en jinja2
[Python] Application Web à partir de 0! Pratique (2) -Bonjour le monde-
[Python] Application Web à partir de 0! Pratique (3) - Mise en œuvre de l'API
FizzBuzz en Python3
Grattage avec Python
La première intelligence artificielle. Testez la sortie Web avec python. ~ Introduction du flacon
Faisons une application WEB pour l'annuaire téléphonique avec flacon Partie 1
Statistiques avec python
Essayez d'utiliser le framework d'application Web Flask
Grattage avec Python
Python avec Go
Créer une application Web de type Flask / Bottle sur AWS Lambda avec Chalice
Python x Flask x PyTorch Construction facile d'une application Web de reconnaissance numérique
Premiers pas avec Python Web Scraping Practice
POSTER diversement avec Python et recevoir avec Flask
Twilio avec Python
Faisons une application WEB pour l'annuaire téléphonique avec flacon Partie 2
Jouez avec 2016-Python
Démonisez une application Web Python avec Supervisor