FPage — генератор проектов классического стиля для Tornado (cli)
FPage — это генератор проектов классического стиля (classic) для Tornado, работающий через интерфейс командной строки (cli).
Classic означает стиль разработки до того, как разделение фронтенда и бэкенда стало популярным.
С помощью FPage можно быстро запустить проект на основе Tornado с использованием Mako/Jinja2 и Peewee/SQLAlchemy.
Использование
Для установки FPage используйте pip:
pip install fpage
или запустите:
python fpage.py new [project-name]
Пошаговые действия:
После этого будет создана директория, представляющая собой прототип вашего проекта. Запустите python app.py
и перейдите по адресу http://127.0.0.1:9000 для проверки.
Пример:
# fpage new test_project
Project Name (test_project):
Template Engine [M/J/T]:
Database ORM [P/S]:
Project Name: test_project
Template Engine: mako
Database ORM: peewee
Sure (Y/n)?
Complete.
To get started:
cd test_project
python app.py
Served at http://localhost:9000
Особенности
Директории
Примеры функций
from view import route, url_for, View
@route('/')
class Index(View):
def get(self):
self.render()
def post(self):
pass
@route('/about', name='about')
class About(View):
def get(self):
self.render()
@route('/')
class Index(View):
def get(self):
self.session['test'] = 'session test 1'
del self.session['test']
self.session['test'] = 'session test 2'
self.render(s=self.session['test'])
<body>
${self.body()}
<%block name="script"/>
</body>
<body>
{% block body %}{% endblock %}
{% block script %}{% endblock %}
</body>
${ req.current_user }
static — статический файл.
<script src="${ static('js/main.js') }"></script>
<link rel="stylesheet" href="${ static('css/style.css') }">
url_for — реверсирование URL.
<p><a href="${ url_for('jump') }">Jump Page</a></p>
<p><a href="${ url_for('about') }">About Page</a></p>
csrf_token — self.xsrf_form_html().
<form method="post" class="am-form">
${csrf_token}
</form>
config — конфигурация.
DATABASE_URI = "sqlite:///database.db"
DATABASE_URI = "sqlite:///database.db"
SQLAlchemy
from model import BaseModel
from sqlalchemy import Column, Integer, String, Float, ForeignKey, Boolean
class Test(BaseModel):
__tablename__ = 'test'
id = Column(Integer, primary_key=True, autoincrement=True)
test = Column(String)
Peewee
from peewee import *
from model import BaseModel
class Test(BaseModel):
test = TextField()
@route('/jump_test', name='jump')
class Jump(View):
def get(self):
self.messages.error('Message Test: Error!!')
self.redirect(url_for('about'))
Шаблон
% for msg in get_messages():
% if msg.tag == 'success':
``` **TODO-LIST**
* ничего.
**Фильтр для расширения peewee**
См. `lib/pvpatch.py`.
**Инструмент для помощи в заголовке страницы**
Конфигурация:
```python
config.TITLE = 'FPage'
Просмотр:
self.render(page_title=page_title('Test Board', 'Forum'))
Заголовок страницы: «Test Board» — «Forum» — FPage.
Paginator
Модель. Pagination_peewee / модель. Pagination_sqlalchemy.
Определение:
def pagination(count_all, query, page_size, cur_page=1, nearby=2):
pass
Возврат:
{
"cur_page": cur_page,
"prev_page": prev_page,
"next_page": next_page,
"first_page": first_page,
"last_page": last_page,
"page_numbers": list(items),
"page_count": page_count,
"items": [...],
"info": {
"page_size": page_size,
"count_all": count_all
}
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )