HelloGitHub.com 網站開源了


簡介

隨着 HelloGitHub 月刊持續更新了一年多,內容變的越來越多。因為內容數據沒有結構化,如果還是使用之前的編輯文本的方式編輯月刊內容,會對后面的繼續發刊和維護帶來了很多問題和多余的工作,例如:查看、查重、分類、排序、修改、同步內容等

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

后面 隨着內容的增多,為了便於用戶的分類查看,打算做個網站,利於展示和查閱。

最后 為了方便的管理展示的內容,同時簡化月刊的發布流程,就打算開發個后台。

技術選型:

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

網站效果:

網站地址:HelloGitHub.com

為什么開源

首先本項目受益於開源,正是因為眾多的開源庫,使得我在開發這個網站的過程變的十分容易,難以想象沒有這些開源的庫。

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

關於進階

我發現在學習編程的過程中,入門資料十分的多,但是進階的資料少之又少。這種現象不局限於某種語言,而是普遍想象。為什么會有這種顯現呢?

入門是簡單的,只要跟着輸入指令得到預期的結果,就算過關。然而在入門階段,很多概念不是那么容易理解,只是會使用或者說“照貓畫虎”可以寫出來。然后,當基礎教程學習完成,打算動手寫個項目的時候,發現寸步難行。然后就開始懷疑自己是否適合編程這條路,這就是為什么編程進階的階段會卡住很多人。

在討論:“概念不理解”、“不知道寫什么”這些問題之前,我覺得可以先討論下:編程是什么?

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

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

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

拿編程中的面向對象舉例:我在學習 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)
  • 還有我是男的,我的頭像是”朴信惠”


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM