HelloGitHub.com 網站開源了

簡介

隨着 HelloGitHub 月刊持續更新了一年多,內容變的愈來愈多。由於內容數據沒有結構化,若是仍是使用以前的編輯文本的方式編輯月刊內容,會對後面的繼續發刊和維護帶來了不少問題和多餘的工做,例如:查看、查重、分類、排序、修改、同步內容等css

最初 是使用本地數據庫的方式進行管理數據,經過腳本生成內容,數據仍是很容易出錯。前端

後面 隨着內容的增多,爲了便於用戶的分類查看,打算作個網站,利於展現和查閱。python

最後 爲了方便的管理展現的內容,同時簡化月刊的發佈流程,就打算開發個後臺。git

技術選型:github

  • Flask:輕量級 Python Web 開發框架
  • Peewee:輕量級 Python ORM 庫
  • Purecss:輕量級 CSS 框架
  • SQLite:輕量級數據庫

網站效果:
sql

網站地址:HelloGitHub.com數據庫

爲何開源

首先本項目受益於開源,正是由於衆多的開源庫,使得我在開發這個網站的過程變的十分容易,不可思議沒有這些開源的庫。編程

其次,個人 HelloGitHub 月刊是推薦開源項目,那麼這個網站開源也是必然的。flask

關於進階

我發如今學習編程的過程當中,入門資料十分的多,可是進階的資料少之又少。這種現象不侷限於某種語言,而是廣泛想象。爲何會有這種顯現呢?微信

入門是簡單的,只要跟着輸入指令獲得預期的結果,就算過關。然而在入門階段,不少概念不是那麼容易理解,只是會使用或者說「照貓畫虎」能夠寫出來。而後,當基礎教程學習完成,打算動手寫個項目的時候,發現步履維艱。而後就開始懷疑本身是否適合編程這條路,這就是爲何編程進階的階段會卡住不少人。

在討論:「概念不理解」、「不知道寫什麼」這些問題以前,我以爲能夠先討論下:編程是什麼?

百度百科:讓計算機爲解決某個問題,對某個計算體系規定必定的運算方式,是計算體系按照該計算方式運行,並最終獲得相應結果的過程。

簡而言之,編程是爲了讓計算機幫助咱們解決某個問題,而編程語言是與計算溝通的橋樑。這也就是說,全部的編程技巧和特性都是爲了讓咱們更好的去解決實際的問題

那麼是否能夠反思得出,入門時學習編程語言,一味的注重記住語法、而不去思考爲何會有這種特性和語法?就像學習漢字的過程,若是在學到一個新字時候,就去想在哪裏見過、有什麼詞組、它是什麼意思、如何使用它,而不是記住他詳細的筆畫。

拿編程中的面向對象舉例:我在學習 Java 語言的時候,就接觸到了面向對象,而後學習 Python 也遇到了這個概念。在介紹完這個概念就會學 「類」 這一章。每次到這一章,我就開始懷疑人生!我根本不懂面向對象的概念,就讓我寫類,我只能死記硬背、照貓畫虎。隨着照着寫玩的代碼能夠跑了,隨後而來的是我對編程失去信心了。

直到,我閱讀、編寫的代碼量積累到必定的量的時候,我才真正的明白麪向對象的意思:封裝、繼承,這給編程帶來多大的便利。不少時候不是老師教授課的能力問題、本身的理解能力的問題。而是編程這門學科,在我看來是爲了使用計算機解決實際問題而誕生的。全部的技巧都是爲了更好的使用計算機解決問題,那麼這些技術都是經過解決問題的過程當中積累、總結而來的。若是不經過實際的理解使用,是沒法理解這種技術的目的和優點的。

回到如何解決 「概念不理解」、「不知道寫什麼」這些問題,個人辦法是閱讀、編寫代碼,用代碼解決實際問題。 在不會寫代碼的時候,多看別人怎麼使用某一種編程問題去解決問題的;在寫代碼的過程當中,要多看文檔、錯誤信息;能寫100行代碼後,就考慮下這些代碼有沒有冗餘的地方?若是讓它變的更加易讀和使用。

最後,這就是爲何我推崇開源的緣由。正是豐富的開源資源讓我學到了不少編程技巧同時融匯貫通、有意思的開源項目讓我發現編程的樂趣,讓我在編程的這條路上越走越遠。

本項目的願景

此項目基於 Flask 開發,如今只開發了一些基本功能,並無集成 flask 的第三方庫。現已發開的功能:

  • OAuth 登錄
  • 後臺內容管理
  • 前端異步展現

之因此如此簡陋就選擇開源。由於,我想呈現的就是從零到一的過程。在這個過程當中,歷經的開發、集成庫、重構的過程和思想, 纔是我想分享給你們的。經過上述的過程可讓新手更好的理解 開源思想、第三方庫的優劣、Web 開發技術、開發流程 等。

我但願 hellogithub.com 這個項目能夠作成一個系列教程,主要目的是:以實際 Web 開發項目爲主要呈現,去理解、加入開源,發現編程的樂趣。

我認爲持續的天然成長才是進階的解決之道,而不多是醍醐灌頂的飛躍。在學會了如何參與開源、使用開源社區的資源、解決問題的思路,在進階的路上會越走越高,越走越順暢。

如何啓動本項目

  1. 下載項目:git clone https://github.com/521xueweihan/hellogithub.com.git
  2. 安裝依賴:pip install -r requirements.txt
  3. 配置
  4. 啓動:python server.py

配置步驟以下:

在該目錄下:/項目地址/hellogithub.com/hellogithub/hellogithub/ 建立 config.py,配置內容以下:

#/usr/bin/env python
# -*- coding:utf-8 -*-
from os import path

DEBUG = True
SECRET_KEY = 'test_secret_key'
STATIC_PATH = path.join(path.dirname(__file__), 'static')

PAGE_MAX = 5
GITHUB_IMAGE_URL = u'https://raw.githubusercontent.com/521xueweihan/HelloGitHub/{path}'
GITHUB_IMAGE_PREFIX = u'https://github.com/521xueweihan/HelloGitHub/blob/'
GITHUB_IMAGE_PATH_PREFIX = u'master/content/{volume_name}/img/{image_name}'

APP_DIR = '/項目地址/hellogithub.com/hellogithub'

GITHUB_TEMPLAT_PATH = path.join(APP_DIR, 'output_template/github_template.md')
GITBOOK_TEMPLAT_PATH = path.join(APP_DIR, 'output_template/gitbook_template.md')

DATABASE = 'sqliteext:///%s' % path.join(APP_DIR, 'test_hellogithub.db')


# GitHub OAuth local
CLIENT_ID = '02f1c617c1b20948b635'
CLIENT_SECRET = '2102c5c75d7482acf70a09317b697d6892380adc'
AUTHORIZE_URL = 'https://github.com/login/oauth/authorize/'
ACCESS_URL = 'https://github.com/login/oauth/access_token/'

開啓 admin 權限:

  • 登錄一次
  • 修改數據庫中 admin 字段爲 1
  • 註銷,從新登錄
  • 點擊用戶名便可跳轉到管理後臺

最後

個人前端技術很菜,須要前端小夥伴一塊兒飛。同時,但願老司機也能帶帶我,對本項目和之後的規劃提出建設性意見。
因此,我留下個人微信號,後面可能會拉個微信羣一塊兒交流,讓這個項目可以幫助到更多的人。

  • 個人微信號:xueweihan(請備註:hellogithub)
  • 還有我是男的,個人頭像是」樸信惠」
相關文章
相關標籤/搜索