Skip to main content

Pythonic Vue.js

Project description




Install

using pip

pip install pyvuejs



Usage

start server by main.py file in project directory

python .\main.py



VUE editing guide

same as vue.js, can support by linting

  • for now, template, style blocks are supported
<template>
    <div id="sample">
        <p>{{ text }}</p>
    </div>
</template>

<style>
    div#sample {
        width: 100%;
        height: 100%;
    }
</style>



App registering guide

  • App registers in main.py in project directory/main.py
  • same syntax as Vue.js javascript defines
from pyvuejs import Vue

class sample():
    def data(self):
        # return as dictionary
        return {
            "text": "hello, pyvuejs!"
        }

    def methods(self):
        def change_text(self):
            self.text = "I'm changed!"

        # return as dictionary
        return {
            "change_text": change_text
        }

Vue.createApp(sample).mount("#sample")

"""
and many other apps...
"""


Component editing guide

  • component defines in component directory
  • name of python file is not important
  • no global components
from pyvuejs import Vue

class sample():
    # props are list only
    props = [ "label" ]
    # template is required
    template = "<label>{{ label }}</label>"

Vue.component("sample-label", sample)



Routing editing guide

  • Routing options register in project directory/router/init.py
from pyvuejs import Vue

Vue.Router({
    # url of public files can be registered
    "public": {
        "url": "/public"
    },
    # url of app and components can be registered
    "sample": {
        # url is required
        "url": "/sample",
        # names of components to use
        "components": [ "sample-label" ]
    }
})



Todo

  • method, created, mounted of component


License

pyvuejs is MIT license



Release History

change log of Rev versions deleted

  • V 0.1.0 [2020/07/17]
    • initial commit

  • V 0.2.0 [2020/07/18]

    • enable componenting
    • multi locational data binding
    • add computed binding
    • dataSession
  • V 0.2.1 [2020/07/19]

    • change decoration as "@method", "@compute"
    • multi locational strategy changed to IP from idGeneration
  • V 0.2.2 [2020/07/19]

    • bug fixes
    • parsing errors if model block is empy

  • V 0.3.0 [2020/07/21]

    • change backend server to flask from quart
    • changes in requirements.txt
    • bug fixed
      • session datas are not sync from view to model
  • V 0.3.1 [2020/07/21]

    • cli changed
      • "init" command is available from module cli
      • "run", "stop", "create", "remove" commands are moved to manage.py
    • logger added
      • server logs server-side loggings only
      • client(web) logs client-side loggings only
  • V 0.3.2 [2020/07/22]

    • standalone mode added
      • use PySide2 WebEngineView as UI
    • "logging" option added
      • if enable, server log to console
      • if not, server doesn't log to console
  • V 0.3.3 [2020/07/22]

    • bug fixed
      • model's native functions got erros during interpreting
    • add pyvue-component tag and change component to pyvue-component
      • format change to normal html format, "<pyvue-component endpoint="componentName">"
    • webview attribute changed to appView
    • creating a new WebView window is available from model
  • V 0.3.4 [2020/07/22]

    • change UI module from PySide2 to pycefsharp
      • appView can be invoked, too

  • V 0.4.0 [2020/07/28]

    • change structure of project
      • project now managed by app
        • app has single view.html file
        • app can has multiple models in models.py
      • project information managed by .config file
    • cli changed
      • cli provides as follows
        • create-project
        • create-app
        • remove-app
        • start
        • stop
  • V 0.4.1 [2020/07/29]

    • remove unnecessary requirements
    • change session refresh interval from 0.5s to 0.1s
  • V 0.4.2 [2020/07/29]

    • change webview frontend from pycefsharp to pywebview
  • V 0.4.3 [2020/07/29]

    • change webview frontend from pywebview to PySide2
    • child window appears properly


※ WARNING: PROJECT SKELETON CHANGED A LOT FROM V0.5!
  • V 0.5.0 [2020/08/10]

    • BIG CHANGES!
      • server changes to bottle
      • change project structure more likely to Vue.js
      • separate cli to pyvuejs-cli
  • V 0.5.1 [2020/08/10]

    • remove unsed requirement bottle-websocket
    • set server config by default if not configured
    • add default_app parameter to standalone server method
    • add show_messagebox method to webview
      • not receive result now
  • V 0.5.1 [2020/08/11]

    • remove config.py
    • change app structure
      • register app in project directory/src/main.py
    • register routing infos in project directory/src/router/init.py

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyvuejs-0.5.2.tar.gz (105.6 kB view details)

Uploaded Source

Built Distribution

pyvuejs-0.5.2-py3-none-any.whl (104.6 kB view details)

Uploaded Python 3

File details

Details for the file pyvuejs-0.5.2.tar.gz.

File metadata

  • Download URL: pyvuejs-0.5.2.tar.gz
  • Upload date:
  • Size: 105.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.7.7

File hashes

Hashes for pyvuejs-0.5.2.tar.gz
Algorithm Hash digest
SHA256 a447a2ef8fd7fd8b53650415fb2a48344a78c34cd86eec821812c22323f38781
MD5 9d00d40de91c75a392f8ae5571afb728
BLAKE2b-256 1d4b0af845a1d491d6238e074f6cca2236b8c6e9bde9791f73429fec10206f4c

See more details on using hashes here.

File details

Details for the file pyvuejs-0.5.2-py3-none-any.whl.

File metadata

  • Download URL: pyvuejs-0.5.2-py3-none-any.whl
  • Upload date:
  • Size: 104.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.7.7

File hashes

Hashes for pyvuejs-0.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 21445f3e596fd1f48aefd674cc783d260dbbf63d8277d41b21f70506323cc621
MD5 d3a4dead02923be0dac9433fd4dc5dfd
BLAKE2b-256 2f6d4a5f75595d54203ea833b6a92e9101d8c6489f5d9b91bc99a77104f2eba1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page