Update README.md
This commit is contained in:
parent
db5bbc6405
commit
a9c96bb2b9
126
README.md
126
README.md
@ -24,12 +24,9 @@ along with this program. If not, see https://www.gnu.org/licenses/.
|
|||||||
## Requirement & Installation
|
## Requirement & Installation
|
||||||
|
|
||||||
You need this libraries to use CostaPy:
|
You need this libraries to use CostaPy:
|
||||||
- cherrypy
|
- bottle
|
||||||
- cherrypy-cors
|
- gunicorn
|
||||||
- mako
|
- mako
|
||||||
- mysql-connector
|
|
||||||
- bcrypt
|
|
||||||
- pyjwt[crypto]
|
|
||||||
|
|
||||||
You can install it with run this command
|
You can install it with run this command
|
||||||
|
|
||||||
@ -39,138 +36,35 @@ Here is the completed command
|
|||||||
|
|
||||||
sudo apt-get install -y python3-pip
|
sudo apt-get install -y python3-pip
|
||||||
pip install --upgrade pip
|
pip install --upgrade pip
|
||||||
pip install cherrypy
|
pip install bottle
|
||||||
pip install cherrypy-cors
|
pip install gunicorn
|
||||||
pip install mako
|
pip install mako
|
||||||
pip install mysql-connector
|
|
||||||
pip install bcrypt
|
|
||||||
pip install pyjwt[crypto]
|
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
Use this command to start the web service
|
Use this command to start the web service
|
||||||
|
|
||||||
python<ver> costa.py <ip_address> <port> <service_name>
|
python3 costa.py
|
||||||
|
|
||||||
For an example like this
|
|
||||||
|
|
||||||
python3 costa.py localhost 80 My_Service
|
|
||||||
|
|
||||||
You can use nohup too and running it in the background like this
|
You can use nohup too and running it in the background like this
|
||||||
|
|
||||||
nohup python3 costa.py localhost 80 My_Service &
|
nohup python3 costa.py &
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
### Server (config/server.py)
|
|
||||||
|
|
||||||
tools.sessions.on </br>
|
|
||||||
Default: True </br>
|
|
||||||
Description: Enable sessions </br>
|
|
||||||
|
|
||||||
engine.autoreload.on </br>
|
|
||||||
Default: False </br>
|
|
||||||
Description: Auto Reload when source code change. Don't use it in production. </br>
|
|
||||||
|
|
||||||
request.show_tracebacks </br>
|
|
||||||
Default: False </br>
|
|
||||||
Description: Show traceback for debugging in development purposes. </br>
|
|
||||||
|
|
||||||
### Global Variable (config/globalvar.py)
|
### Global Variable (config/globalvar.py)
|
||||||
|
|
||||||
`directory.py` is the place for storing your Global Variable.
|
`globalvar.py` is the place for storing your Global Variable.
|
||||||
|
|
||||||
GV_base_url </br>
|
`baseurl` </br>
|
||||||
Is the variable for your base URL (without `/` in the end).
|
Is the variable for your base URL (without `/` in the end).
|
||||||
|
|
||||||
GV_title </br>
|
`title` </br>
|
||||||
Is the variable for your web title.
|
Is the variable for your web title.
|
||||||
|
|
||||||
### Directory (config/directory.py)
|
### Directory (config/directory.py)
|
||||||
|
|
||||||
`directory.py` is the place for storing your path. It is useful to calling the path more efficiently. there is 2 method that you can store your path. store it in variable for templating configuration, and store it as object for routing the url.
|
`directory.py` is the place for storing your path. It is useful to calling the path more efficiently.
|
||||||
|
|
||||||
This is example that use for templating
|
|
||||||
|
|
||||||
html_user = "static/pages-user"
|
|
||||||
template_user = "static/template-user"
|
|
||||||
|
|
||||||
And this is example that use for routing the url
|
|
||||||
|
|
||||||
dirconfig = {
|
|
||||||
'/' :
|
|
||||||
{
|
|
||||||
'tools.sessions.on' : True ,
|
|
||||||
'tools.staticdir.root' : os.path.abspath(os.getcwd()) ,
|
|
||||||
},
|
|
||||||
'/your_dir' :
|
|
||||||
{
|
|
||||||
'tools.staticdir.on' : True ,
|
|
||||||
'tools.staticdir.dir' : './static/your-dir' ,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
### Templating (config/template.py)
|
|
||||||
|
|
||||||
Templating is useful when you had more than 1 website template for difference use case. For an example, when you had user and admin in the use case, the website for user have a navbar and footer, and the website for admin have a navbar and sidebar.
|
|
||||||
|
|
||||||
Before you create a template, make sure your `directory` configuration is ready for storing templates and pages. For an example:
|
|
||||||
|
|
||||||
html_user = "static/pages-user"
|
|
||||||
template_user = "static/template-user"
|
|
||||||
|
|
||||||
To create the template, you need to insert this code in `def __init__(self)`
|
|
||||||
|
|
||||||
self.html_pages_user = html.main.get_html(directory.html_user)
|
|
||||||
self.html_template_user = html.main.get_html(directory.template_user)
|
|
||||||
|
|
||||||
if you had admin template, you just need to add the code. for the example like this
|
|
||||||
|
|
||||||
self.html_pages_user = html.main.get_html(directory.html_user)
|
|
||||||
self.html_template_user = html.main.get_html(directory.template_user)
|
|
||||||
|
|
||||||
self.html_pages_admin = html.main.get_html(directory.html_admin)
|
|
||||||
self.html_template_admin = html.main.get_html(directory.template_admin)
|
|
||||||
|
|
||||||
and then you need create function for each of your template in main class like this
|
|
||||||
|
|
||||||
def user(self, page):
|
|
||||||
params_list = {
|
|
||||||
"template" : self.html_template_user ["user.html" ] ,
|
|
||||||
"topnav" : self.html_template_user ["user-topnav.html" ] ,
|
|
||||||
"container" : self.html_pages_user [page+".html" ]
|
|
||||||
}
|
|
||||||
return params_list
|
|
||||||
|
|
||||||
### Database (config/database.py)
|
|
||||||
|
|
||||||
This is the sample template for configure it
|
|
||||||
|
|
||||||
db_default = {
|
|
||||||
'host' : 'localhost',
|
|
||||||
'user' : 'root',
|
|
||||||
'password' : '',
|
|
||||||
'database' : 'your_db',
|
|
||||||
'autocommit' : True,
|
|
||||||
}
|
|
||||||
|
|
||||||
You also can make more than 1 database configuration like this
|
|
||||||
|
|
||||||
db_default = {
|
|
||||||
'host' : 'localhost',
|
|
||||||
'user' : 'root',
|
|
||||||
'password' : '',
|
|
||||||
'database' : 'your_db',
|
|
||||||
'autocommit' : True,
|
|
||||||
}
|
|
||||||
|
|
||||||
db_other = {
|
|
||||||
'host' : 'localhost',
|
|
||||||
'user' : 'root',
|
|
||||||
'password' : '',
|
|
||||||
'database' : 'other_db',
|
|
||||||
'autocommit' : True,
|
|
||||||
}
|
|
||||||
|
|
||||||
## Handling the modules
|
## Handling the modules
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user