Contenu Web Python réalisé avec le serveur bon marché Lolipop

image.png

Rendez la commande pip disponible.

$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ python get-pip.py --user

$ pwd /home/users/0/sub.jp-hrd


Modifier .bash_profile $vi .bash_profile

PATH=$PATH:/home/users/0/sub.jp-hrd/.local/bin export PATH

$ source .bash_prof

Avec ce travail, vous pouvez utiliser pip, etc.

pip install bottle --user

####Lors de l'installation avec pip--Si vous ajoutez l'option utilisateur, elle sera installée dans le répertoire utilisateur.

$ pip freeze DEPRECATION: Python 3.4 support has been deprecated. pip 19.1 will be the last one supporting it. Please upgrade your Python as Python 3.4 won't be maintained after March 2019 (cf PEP 429). Beaker==1.10.0 bottle==0.12.13 bottle-auth==0.3.3 bottle-beaker==0.1.3 bottle-mongo==0.3.0 bottle-sqlite==0.1.3 certifi==2019.9.11

###python sur un serveur bon marché de lolipop/Mod pour travailler la bouteille_Comme wsgi ne peut pas être utilisé, une certaine ingéniosité est requise.
##Liste des chemins de dossier

W3 │ .htaccess └─app │ .htaccess │ app.py │ routes.py │
├─static │ ├─content │ │ bootstrap-grid.css │ │ bootstrap-grid.css.map │ │ bootstrap-grid.min.css │ │ bootstrap-grid.min.css.map │ │ bootstrap-reboot.css │ │ bootstrap-reboot.css.map │ │ bootstrap-reboot.min.css │ │ bootstrap-reboot.min.css.map │ │ bootstrap.css │ │ bootstrap.css.map │ │ bootstrap.min.css │ │ bootstrap.min.css.map │ │ jumbotron.css │ │ site.css
│ ├─fonts │ │ glyphicons-halflings-regular.eot │ │ glyphicons-halflings-regular.svg │ │ glyphicons-halflings-regular.ttf │ │ glyphicons-halflings-regular.woff
│ └─scripts │ bootstrap.bundle.js │ bootstrap.bundle.js.map │ bootstrap.bundle.min.js │ bootstrap.bundle.min.js.map │ bootstrap.js │ bootstrap.js.map │ bootstrap.min.js │ bootstrap.min.js.map │ jquery-1.10.2.intellisense.js │ jquery-1.10.2.js │ jquery-1.10.2.min.js │ jquery-1.10.2.min.map │ jquery.validate-vsdoc.js │ jquery.validate.js │ jquery.validate.min.js │ jquery.validate.unobtrusive.js │ jquery.validate.unobtrusive.min.js │ modernizr-2.6.2.js │ respond.js │ respond.min.js │ _references.js
├─views │ about.tpl │ contact.tpl │ home.tpl │ index.tpl │ layout.tpl

En supposant que le répertoire w3 est la racine du Web, il a été placé directement en dessous..htaccess est le suivant.


#### **` .htaccess`**
```htaccess

RewriteEngine on
RewriteRule ^(.*).py$ https://w3.hrd.co.jp/app/$1 
RewriteRule ^(.*)$ https://w3.hrd.co.jp/app/app.py/$1
DirectoryIndex app.py

au dessus dehttps://w3.hrd.co.jpVeuillez modifier votre domaine. Cette notation réécrit l'url du serveur sweb. RewriteRule ^(.*).py$ https://w3.hrd.co.jp/app/$1 https://w3.hrd.co.Quand jp est demandéhttps://w3.hrd.co.jp/app/app.pyRéécrivez dans. app.py entre dans la boucle d'événements du serveur Web, donc l'application.Vous devez accéder aux vues, etc. au répertoire directement sous py. Il sera réalisé ci-dessous.

RewriteRule ^(.*)$ https://w3.hrd.co.jp/app/app.py/$1


app.py définit simplement les routes.


#### **`app.py`**
```py

!/usr/local/bin/python3.4
 -*- coding: utf-8 -*-
from bottle import *
import routes
run(server='cgi')
!/usr/local/bin/python3.4
 -*- coding: utf-8 -*-
from bottle import *
from datetime import datetime
import requests
 js = [('café', 'café'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4 '), (' 5 ',' 5 '), (' 6 ',' 6 '), (' 7 ',' 7 '), (' 8 ',' 8 '), (' 9 ',' 9 '), (' 10 ',' 10 '), (' 11 ',' 11 '), (' 12 ',' 12 '), (' TV ',' TV '), (' cup ',' CH + '), (' cdwn ',' CH- '), (' vup ',' Vol + '), (' vdwn ',' Vol- '), (' vcut ',' silence '), (' bs ', 'bs'), ('cs', 'cs'), ('bs1', 'bs1'), ('bs2', 'bs2'), ('bs3', 'bs3'), ('bs4', 'bs4'), ('bs5', 'bs5'), ('bs6', 'bs6'), ('bs7', 'bs7'), ('bs8', 'bs8'), ('bs9', 'bs9'), ('bs10', 'bs10'), ('bs11', 'bs11'), ('bs12', 'bs12'), ('inUp', 'inUp'), ('inDwn', 'inDwn'), ('ent', 'ent'), ('on', 'all lights'), ('off', 'off'), ('fav', 'favorite'), ('small' ',' Voyant de sécurité '), (' lup ',' light '), (' ldwn ',' dark '), (' ac ',' cooling '), (' acoff ',' stop '), (' heeting ',' chauffage '), (' Joshitsu ',' déshumidification '), (' ron ',' radio '), (' r1 ',' R1 '), (' r2 ',' R2 '), (' r3 ',' R3 '), (' r4 ',' R4 '), (' r5 ',' R5 '), (' r6 ',' R6 '), (' r7 ',' R7 '), (' r8 ',' R8 '), (' r9 ',' R9 '), (' r0 ',' R0 '), (' R + ',' + '), (' R - ',' - '), ( 'r>', '>')]
@route('/')
@view('index')
def home():
    return dict(
        year=datetime.now().year,app="/app"
    )
@route('/home')
@view('home')
def home1():
    return dict(
        year=datetime.now().year,js=js,app="/app"
    )
@route('/contact')
@view('contact')
def contact():
    return dict(
        title='Contact',
        message='Your contact page.',
        year=datetime.now().year,app="/app"
    )
@route('/about')
@view('about')
def about():
    return dict(
        title='About',
        message='Your application description page.',
        year=datetime.now().year,app="/app"
    )
def mq(idx):
    url='https://api.beebotte.com/v1/data/write/HomeControl/cmd?token={mq token}'
    r=requests.post(url,{'data':idx})
@route('/click/<idx>')
def click(idx):
    mq(idx)
    return idx

Le modèle de vue est

lyout.tpl


<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
	<meta http-equiv="Cache-Control" content="no-cache">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>{{ title }} - My Bottle Application</title>
    <link rel="stylesheet" type="text/css" href="{{app}}/static/content/bootstrap.min.css" />
	<link href="{{app}}/static/content/jumbotron.css" rel="stylesheet" />
    <link rel="stylesheet" type="text/css" href="{{app}}/static/content/site.css" />
    <script src="{{app}}/static/scripts/modernizr-2.6.2.js"></script>

    <script src="{{app}}/static/scripts/jquery-1.10.2.js"></script>
    <script src="{{app}}/static/scripts/bootstrap.js"></script>
    <script src="{{app}}/static/scripts/respond.js"></script>
</head>

<body>
    <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
      <a class="navbar-brand" href="#">Boostrap4</a>
      <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsExampleDefault" aria-controls="navbarsExampleDefault" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
      </button>

      <div class="collapse navbar-collapse" id="navbarsExampleDefault">
        <ul class="navbar-nav mr-auto">
          <li class="nav-item active">
            <a class="nav-link" href="/">Home <span class="sr-only">(current)</span></a>
          </li>
         <li class="nav-item">
            <a class="nav-link" href="/home">HomeControl</a>
          </li>
          <li class="nav-item">
            <a class="nav-link" href="/about">About</a>
          </li>
          <li class="nav-item">
            <a class="nav-link" href="/contact">Content</a>
          </li>
          <li class="nav-item dropdown">
            <a class="nav-link dropdown-toggle" href="http://example.com" id="dropdown01" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown</a>
            <div class="dropdown-menu" aria-labelledby="dropdown01">
              <a class="dropdown-item" href="#">Action</a>
              <a class="dropdown-item" href="#">Another action</a>
              <a class="dropdown-item" href="#">Something else here</a>
            </div>
          </li>
        </ul>
        <form class="form-inline my-2 my-lg-0">
          <input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search">
          <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
        </form>
      </div>
    </nav>


    <div class="container body-content">
        {{!base}}
        <hr />
        <footer>
            <p>&copy; {{ year }} - My Bottle Application</p>
        </footer>
    </div>
</body>
</html>

{{app}}Est utilisé pour ajuster le répertoire. css,Utilisez la variable d'application pour accéder au dossier statique contenant du javascript.Passer de py. L'application suivante='/app'

@route('/')
@view('index')
def home():
    return dict(
        year=datetime.now().year,app="/app"
    )

Déployer avec ftp, etc. et l'application.Si vous passez le droit d'exécution à py

$ chmod 700 app.py
$ ls -al
-rwx------ 1 sub.jp-hrd LolipopUser    134 2019-11-18 14:08 app.py
-

image.png

###Le code source est https://github.com/yutakahirata/lolipop2019.git image.png

Recommended Posts

Contenu Web Python réalisé avec le serveur bon marché Lolipop
Démarrez un serveur Web Python simple avec Docker
Lancer un serveur Web avec Python et Flask
Serveur local avec python
Application Web réalisée avec Python3.4 + Django (Construction de l'environnement Part.1)
Compléter automatiquement le contenu YAML avec Python
Web scraping avec python + JupyterLab
J'ai fait un blackjack avec du python!
API Web avec Python + Falcon
Serveur HTTP facile avec Python
Application Web avec Python + Flask ② ③
J'ai fait un blackjack avec Python.
Web scraping débutant avec python
Othello fait avec python (comme GUI)
J'ai créé wordcloud avec Python.
Rationalisez la recherche Web avec Python
Application Web avec Python + Flask ④
Premiers pas avec les applications Web Python
Web scraping avec Python Première étape
J'ai essayé webScraping avec python.
Surveillez les applications Web Python avec Prometheus
Numer0n avec des objets fabriqués avec Python
Obtenez une capture d'écran Web avec python
J'ai fait une loterie avec Python.
Développement de jeux Othello avec Python
J'ai créé un démon avec Python
J'ai créé un serveur Web avec Razpai pour regarder des anime
[FastAPI] Premiers pas avec FastAPI, un framework Web ASGI créé par Python
J'ai créé un chat-holdem de serveur de jeu de poker en utilisant websocket avec python
Grattage WEB avec Python (pour mémo personnel)
Client API Slack simple réalisé avec Python
Type de téléchargement de partage HTTP réalisé avec Python
Serveur Web pour tester le navigateur avec Mocha
Premiers pas avec Python Web Scraping Practice
J'ai fait un compteur de caractères avec Python
Démonisez une application Web Python avec Supervisor
[Note personnelle] Scraping de pages Web en python3
Comment afficher le japonais python avec lolipop
Télécharger des fichiers sur le Web avec Python
Site de courses de chevaux Web scraping avec Python
[Python] Une application web rapide avec Bottle!
Premiers pas avec Python Web Scraping Practice
Application Web facile avec Python + Flask + Heroku
J'ai fait une carte hexadécimale avec Python
Exécutez une application Web Python avec Docker
Créez un framework Web avec Python! (1)
API de reconnaissance faciale sans serveur conçue avec Python
Pratiquer le web scraping avec Python et Selenium
Scraping Web facile avec Python et Ruby
J'ai fait un jeu rogue-like avec Python
Créez un framework Web avec Python! (2)
J'ai fait un simple blackjack avec Python
[Pour les débutants] Essayez le web scraping avec Python
J'ai créé un fichier de configuration avec Python
J'ai fait une application WEB avec Django
J'ai fait un simulateur de neurones avec Python
Application Othello (application iOS) réalisée avec Python (Kivy)
Mettez Docker dans Windows Home et exécutez un serveur Web simple avec Python
[Python] Comment créer un environnement de serveur Web local avec SimpleHTTPServer et CGIHTTPServer