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
- cli changed
-
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
- standalone mode added
-
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
- bug fixed
-
V 0.3.4 [2020/07/22]
- change UI module from PySide2 to pycefsharp
- appView can be invoked, too
- change UI module from PySide2 to pycefsharp
-
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
- project now managed by app
- cli changed
- cli provides as follows
- create-project
- create-app
- remove-app
- start
- stop
- cli provides as follows
- change structure of project
-
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
- BIG CHANGES!
-
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 app in
- register routing infos in
project directory
/src/router/init.py
Project details
Release history Release notifications | RSS feed
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)
Built Distribution
pyvuejs-0.5.2-py3-none-any.whl
(104.6 kB
view details)
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | a447a2ef8fd7fd8b53650415fb2a48344a78c34cd86eec821812c22323f38781 |
|
MD5 | 9d00d40de91c75a392f8ae5571afb728 |
|
BLAKE2b-256 | 1d4b0af845a1d491d6238e074f6cca2236b8c6e9bde9791f73429fec10206f4c |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 21445f3e596fd1f48aefd674cc783d260dbbf63d8277d41b21f70506323cc621 |
|
MD5 | d3a4dead02923be0dac9433fd4dc5dfd |
|
BLAKE2b-256 | 2f6d4a5f75595d54203ea833b6a92e9101d8c6489f5d9b91bc99a77104f2eba1 |