Skip to content

Commit a90d5a8

Browse files
author
PedroGao
committed
init: 项目初始化
0 parents  commit a90d5a8

37 files changed

Lines changed: 1524 additions & 0 deletions
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---
2+
name: 提出一个bug
3+
about: 提出bug帮助我们完善项目
4+
---
5+
6+
**描述 bug**
7+
8+
- 你是如何操作的?
9+
- 发生了什么?
10+
- 你觉得应该出现什么?
11+
12+
**你使用哪个版本出现该问题?**
13+
14+
如果使用`master`,请表明是 master 分支,否则给出具体的版本号
15+
16+
**如何再现**
17+
18+
If your bug is deterministic, can you give a minimal reproducing code?
19+
Some bugs are not deterministic. Can you describe with precision in which context it happened?
20+
If this is possible, can you share your code?
21+
22+
如果你确定存在这个 bug,你能提供我们一个最小的实现代码吗?
23+
一些 bug 是不确定,只会在某些条件下触发,你能详细描述一下具体的情况和提供复现的步骤吗?
24+
当然如果你提供在线的 repo,那就再好不过了。
25+
26+
如果你发现了 bug,并修复了它,请用`git rebase`合并成一条标准的`fix: description`提交,然后向我们的
27+
项目提 PR,我们会在第一时间审核,并感谢您的参与。
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
name: 提出新特性
3+
about: 对项目的发展提出建议
4+
---
5+
6+
CMS 是一个颇为复杂的应用,它需要的东西太多。我们无法涉及到方方面面,因此关于新特性,我们会以讨论的形式来确定这个特性是否去实现,以什么形式实现。
7+
我们鼓励所有对这个特性感兴趣的人来参与讨论,当然如果你想参与特性的开发那就更好了。
8+
9+
如果你实现了一个 feature,并通过了单元测试,请用`git rebase`合并成一条标准的`feat: description`提交,然后向我们的
10+
项目提 PR,我们会在第一时间审核,并感谢您的参与。
11+
12+
**请问这个特性跟什么问题相关? 有哪些应用场景?请详细描述。**
13+
请清晰准确的描述问题的内容,以及真实的场景。
14+
15+
**请描述一下你想怎么实现这个特性**
16+
怎么样去实现这个特性?加入核心库?加入工程项目?还是其他方式。
17+
当然你也可以描述它的具体实现.
18+
19+
**讨论**
20+
如果这个特性应用场景非常多,或者非常重要,我们会第一时间去处理。但更多的我们希望更多的人参与讨论,来斟酌它的可行性。

.github/ISSUE_TEMPLATE/question.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
name: 问题
3+
about: 关于项目的疑问
4+
---
5+
6+
请详细描述您对本项目的任何问题,我们会在第一时间查阅和解决。

.gitignore

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
.idea
2+
.vscode
3+
Pipfile.lock
4+
__pycache__
5+
*/__pycache__/
6+
*.pytest_cache/
7+
*.db
8+
*.pyc
9+
*.cpython-36.pyc

CHANGELOG.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
> 敬请期待
2+
3+
<!-- # [](https://github.com/PedroGao/lin-cms-flask-starter/releases/tag/0.0.1-alpha.1) (2019-01-15)
4+
5+
## [1.2.5](https://github.com/PedroGao/lin-cms-flask-starter/releases/tag/0.0.1-alpha.1) (2019-01-15)
6+
7+
### 发布`0.0.1-alpha.1` -->
8+
9+
<!-- <a name="1.2.5"></a>
10+
11+
## [1.2.5](https://github.com/NervJS/taro/compare/v1.2.4...v1.2.5) (2019-01-14)
12+
13+
### Bug Fixes
14+
15+
- **cli:** h5 端编译对于带有后缀的资源引用编译错误 ([a96c994](https://github.com/NervJS/taro/commit/a96c994))
16+
17+
### Features
18+
19+
- **cli:** config 配置 alias 选项 暂不支持转换 usingComponents [#1704](https://github.com/NervJS/taro/issues/1704) ([#1859](https://github.com/NervJS/taro/issues/1859)) ([e3a5548](https://github.com/NervJS/taro/commit/e3a5548)) -->

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2019 TaleLin
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

Pipfile

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
[[source]]
2+
url = "https://pypi.python.org/simple"
3+
verify_ssl = true
4+
name = "pypi"
5+
6+
[packages]
7+
flask = "==1.0.2"
8+
flask-sqlalchemy = "==2.3.2"
9+
flask-wtf = "==0.14.2"
10+
cymysql = "==0.9.1"
11+
flask-cors = "==2.1.0"
12+
requests = "==2.18.4"
13+
pipfile = "*"
14+
lin-cms = "==0.1.1"
15+
16+
[dev-packages]
17+
pytest = "*"
18+
19+
[requires]
20+
python_version = "3.6"

README.md

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
# Lin-CMS-Flask
2+
3+
## 什么是 Lin CMS?
4+
5+
Lin-CMS 是林间有风团队经过大量项目实践所提炼出的一套**内容管理系统框架**。Lin-CMS 可以有效的帮助开发者提高 CMS 的开发效率。
6+
7+
本项目是 Lin CMS 后端的 Flask 实现,访问[前端仓库](https://github.com/TaleLin/lin-cms-vue)
8+
9+
## 地址文档
10+
11+
[http://doc.cms.7yue.pro/](http://doc.cms.7yue.pro/)
12+
13+
## Lin CMS 的特点
14+
15+
Lin CMS 的构筑思想是有其自身特点的。下面我们阐述一些 Lin 的主要特点。
16+
17+
### Lin CMS 是一个前后端分离的 CMS 解决方案
18+
19+
这意味着,Lin 既提供后台的支撑,也有一套对应的前端系统,当然双端分离的好处不仅仅在于此,我们会在后续提供`NodeJS``PHP`版本的 Lin。如果你心仪 Lin,却又因为技术栈的原因无法即可使用,没关系,我们会在后续提供更多的语言版本。为什么 Lin 要选择前后端分离的单页面架构呢?
20+
21+
首先,传统的网站开发更多的是采用服务端渲染的方式,需用使用一种模板语言在服务端完成页面渲染:比如 JinJa2、Jade 等。
22+
服务端渲染的好处在于可以比较好的支持 SEO,但作为内部使用的 CMS 管理系统,SEO 并不重要。
23+
24+
但一个不可忽视的事实是,服务器渲染的页面到底是由前端开发者来完成,还是由服务器开发者来完成?其实都不太合适。现在已经没有多少前端开发者是了解这些服务端模板语言的,而服务器开发者本身是不太擅长开发页面的。那还是分开吧,前端用最熟悉的 Vue 写 JS 和 CSS,而服务器只关注自己的 API 即可。
25+
26+
其次,单页面应用程序的体验本身就要好于传统网站。
27+
28+
### 框架本身已内置了 CMS 常用的功能
29+
30+
Lin 已经内置了 CMS 中最为常见的需求:用户管理、权限管理、日志系统等。开发者只需要集中精力开发自己的 CMS 业务即可
31+
32+
### Lin CMS 本身也是一套开发规范
33+
34+
Lin CMS 除了内置常见的功能外,还提供了一套开发规范与工具类。换句话说,开发者无需再纠结如何验证参数?如何操作数据库?如何做全局的异常处理?API 的结构如何?前端结构应该如何组织?这些问题 Lin CMS 已经给出了解决方案。当然,如果你不喜欢 Lin 给出的架构,那么自己去实现自己的 CMS 架构也是可以的。但通常情况下,你确实无需再做出架构上的改动,Lin 可以满足绝大多数中小型的 CMS 需求。
35+
36+
举例来说,每个 API 都需要校验客户端传递的参数。但校验的方法有很多种,不同的开发者会有不同的构筑方案。但 Lin 提供了一套验证机制,开发者无需再纠结如何校验参数,只需模仿 Lin 的校验方案去写自己的业务即可。
37+
38+
还是基于这样的一个原则:Lin CMS 只需要开发者关注自己的业务开发,它已经内置了很多机制帮助开发者快速开发自己的业务。
39+
40+
### 基于插件的扩展
41+
42+
任何优秀的框架都需要考虑到扩展。而 Lin 的扩展支持是通过插件的思想来设计的。当你需要新增一个功能时,你既可以直接在 Lin 的目录下编写代码,也可以将功能以插件的形式封装。比如,你开发了一个文章管理功能,你可以选择以插件的形式来发布,这样其他开发者通过安装你的插件就可以使用这个功能了。毫无疑问,以插件的形式封装功能将最大化代码的可复用性。你甚至可以把自己开发的插件发布,以提供给其他开发者使用。这种机制相当的棒。
43+
44+
### 前端组件库支持
45+
46+
Lin 还将提供一套类似于 Vue Element 的前端组件库,以方便前端开发者快速开发。相比于 Vue Element 或 iView 等成熟的组件库,Lin 所提供的组件库将针对 Lin CMS 的整体设计风格、交互体验等作出大量的优化,使用 Lin 的组件库将更容易开发出体验更好的 CMS 系统。当然,Lin 本身不限制开发者选用任何的组件库,你完全可以根据自己的喜好/习惯/熟悉度,去选择任意的一个基于 Vue 的组件库,比如前面提到的 Vue Element 和 iView 等。你甚至可以混搭使用。当然,前提是这些组件库是基于 Vue 的。
47+
48+
### 完善的文档
49+
50+
我们将提供详尽的文档来帮助开发者使用 Lin
51+
52+
## 所需基础
53+
54+
由于 Lin 采用的是前后端分离的架构,所以你至少需要熟悉 Python 和 Vue。
55+
56+
Lin 的服务端框架是基于 Python Flask 的,所以如果你比较熟悉 Flask 的开发模式,那将可以更好的使用 Lin。但如果你并不熟悉 Flask,我们认为也没有太大的关系,因为 Lin 本身已经提供了一套完整的开发机制,你只需要在 Lin 的框架下用 Python 来编写自己的业务代码即可。照葫芦画瓢应该就是这种感觉。
57+
58+
但前端不同,前端还是需要开发者比较熟悉 Vue 的。但我想以 Vue 在国内的普及程度,绝大多数的开发者是没有问题的。这也正是我们选择 Vue 作为前端框架的原因。如果你喜欢 React Or Angular,那么加入我们,为 Lin 开发一个对应的版本吧。
59+
60+
## TODO LIST
61+
62+
- [ ] 消息推送
63+
- [ ] Node 版 CMS

app/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
"""
2+
:copyright: © 2019 by the Lin team.
3+
:license: MIT, see LICENSE for more details.
4+
"""

app/api/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
"""
2+
:copyright: © 2019 by the Lin team.
3+
:license: MIT, see LICENSE for more details.
4+
"""

0 commit comments

Comments
 (0)