From a9c96bb2b9d4783422e1f83c0a9e44774ea16b17 Mon Sep 17 00:00:00 2001 From: ditaajipratama Date: Sun, 12 May 2024 02:28:57 +0700 Subject: [PATCH] Update README.md --- README.md | 126 +++++------------------------------------------------- 1 file changed, 10 insertions(+), 116 deletions(-) diff --git a/README.md b/README.md index 07cd892..e0ccaa9 100644 --- a/README.md +++ b/README.md @@ -24,12 +24,9 @@ along with this program. If not, see https://www.gnu.org/licenses/. ## Requirement & Installation You need this libraries to use CostaPy: -- cherrypy -- cherrypy-cors +- bottle +- gunicorn - mako -- mysql-connector -- bcrypt -- pyjwt[crypto] You can install it with run this command @@ -39,138 +36,35 @@ Here is the completed command sudo apt-get install -y python3-pip pip install --upgrade pip - pip install cherrypy - pip install cherrypy-cors + pip install bottle + pip install gunicorn pip install mako - pip install mysql-connector - pip install bcrypt - pip install pyjwt[crypto] ## Usage Use this command to start the web service - python costa.py - -For an example like this - - python3 costa.py localhost 80 My_Service + python3 costa.py 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 -### Server (config/server.py) - -tools.sessions.on
-Default: True
-Description: Enable sessions
- -engine.autoreload.on
-Default: False
-Description: Auto Reload when source code change. Don't use it in production.
- -request.show_tracebacks
-Default: False
-Description: Show traceback for debugging in development purposes.
- ### 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
+`baseurl`
Is the variable for your base URL (without `/` in the end). -GV_title
+`title`
Is the variable for your web title. ### 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. - -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, - } +`directory.py` is the place for storing your path. It is useful to calling the path more efficiently. ## Handling the modules