用Python Flask Web框架搭建自己的網站

用Python Flask Web框架搭建自己的網站

來自專欄 Python社區2 人贊了文章

本項目是基於Flask搭建前後端不分離的新聞類資訊網站,可以自己個性化定位網站的類型,因為來回都是這樣的套路。

用戶端功能實現

  • 註冊登錄(需要手機驗證碼驗證)
  • 新聞詳情查看
  • 新聞評論、點贊、收藏
  • 個人中心的基本信息、頭像、密碼設置與修改
  • 查看關注的作者以及取消關注
  • 查看收藏的文章以及取消收藏
  • 發布自己撰寫的新聞文章
  • 查看自己發布的新聞文章

服務端功能實現

用戶管理

  • 用戶統計(數據可視化展示)
  • 用戶查看(支持搜索查看用戶基本信息)

新聞管理

  • 新聞審核,支持狀態篩選對用戶發布的新聞進行審核
  • 新聞編輯,對已發布的新聞進行二次編輯
  • 新聞分類,對主頁展示的新聞類別進行管理(增刪改)

網站視頻效果展示

具體網站效果可見下面的演示視頻(建議WIFI下觀看,哎,騰訊視頻畫質渣渣,大家可以自己根據下面的操作自己把網站在自己電腦跑起來體驗一下)

PART TWO 跟著操作自己把網站跑起來

項目相關資源獲取

本項目使用到的前端文件以及測試數據等材料請在下文留言回復「Flask搭建網站」獲取即可。

開發環境

  1. 操作系統:Ubuntu16.04
  2. 資料庫:MySQL Redis
  3. IDE軟體:PyCharm
  4. Python版本:Python3版本
  5. 註冊認證七牛雲(存儲頭像圖片等)和容聯雲通訊(發送簡訊驗證碼)
  6. 虛擬環境創建
  • 上面的的1-4的配置環境請瀆者自行安裝,安裝期間遇到不會的多多找谷歌和度娘,培養自我解決問題的能力。
  • 因為本項目用戶頭像是放在雲存儲上的,所以需要使用到千牛雲存儲(傳送門)(有免費10G空間)的服務,簡訊發送功能使用容聯雲通訊(傳送門)提供的服務(有贈送8元餘額在裡面,測試發送簡訊功能成功沒問題後,可以直接把發送簡訊功能注釋掉,後台列印輸出就好,以免產生不必要的費用),請讀者自行註冊以及實名認證。虛擬環境創建可參考下面:

虛擬環境創建

虛擬環境的重要性就不必多說了。因為每個項目的依賴模塊會不一樣,需要為項目提供一個獨立的環境,互不影響各個項目的開發環境,更是為了更好的調試。

依次執行以下代碼:

  1. sudo apt install virtualenv

  1. sudo apt install virtualenvwrapper

  1. which python3 #查看Python3 的路徑
  2. mkvirtualenv -p /usr/bin/python3 News_Website
  • -p /usr/bin/python3 指定Python版本為Python3版本
  • 創建一個名為News_Website的虛擬環境,以後開發都在這個環境下進行

  1. workon News_Website

* workon 虛擬環境名稱 :進入虛擬環境 * deactivate :退出虛擬環境

啟動網站,體驗一把

記得,所有操作都在虛擬環境News_Website下進行

  1. 在下文留言回復"Flask搭建網站"獲取資源
  2. 解壓News_Websites_Project壓縮包,找到News_Website(final)文件夾,在Pycharm中打開News_Website(final),解釋器選擇前面創建的虛擬環境News_Website;

  1. 修改信息
  • 把自己七牛雲和雲通訊的token等介面信息填寫到以下文件的# TODO 處

    News_website(final)/info/constants.py

    News_website(final)/info/utils/image_storge.py

    News_website(final)/info/utils/yuntongxun/sms.py
  • 把config.py中的資料庫的訪問密碼"mysql"修改為自己資料庫root的訪問密碼

  1. 打開Pycharm Terminal終端(在左下角靠中的位置),批量安裝需要用到的相關Python模塊

  1. 下面我們先在MySQL創建資料庫,打開系統終端,運行以下命令

進入資料庫: mysql -uroot -p 創建資料庫: create database news_website charset=utf8;

  1. 創建資料庫里的表,在Pycharm Terminal依次輸入以下三條命令即可

* python manager.py mysql init * python manager.py mysql migrate -m "initialize database" * python manager.py upgrade

  1. 往資料庫添加測試數據,進入MySQL的news_website資料庫,先添加分類,在添加新聞

* use news_website; * source information_info_category.sql的文件路徑; * source information_info_news.sql的文件路徑;

  1. 使用腳本創建管理員賬號,在Pycharm Terminal輸入以下命令:

python manager.py create_super_user -n admin -p admin

  1. 運行網站,在Pycharm中雙擊打開manager.py,在右側空白地方右擊,選擇運行

  1. 在瀏覽器的網址欄輸入以下網址,體驗一把
  • 網站首頁:127.0.0.1:5000
  • 管理後台:127.0.0.1:5000/admin/login

PART THREE 盡情折騰

參照final完成版,對 待開發版 盡情折騰

在折騰中遇到問題,歡迎到在下文留言您遇到的問題,請帶上error截圖以便快速定位錯誤,一起學習進步.

基礎知識要求

需要基本具備以下的前後端知識:

前端知識

HTML:頁面結構

CSS:頁面表現:元素大小、顏色、位置

JavaScript:頁面行為(這裡使用JQuery的ajax進行數據交互)

Jinja2模板引擎:渲染HTML頁面

後端知識

Python:項目基礎語言

資料庫:MySQL(存儲永久性數據),Redis(存放cookie,session數據)

Flask:項目框架,對藍圖有一定的了解

前端知識掌握程度需要能看懂實現什麼功能,有個大概就行,本項目直接提供前端代碼源碼,通過本項目你肯定可以掌握的這些知識的.

敲到後面就會感覺越來越容易了,看到自己一步步搭建的網站跑起來了,成就感湧上心頭啊.

在學習過程中遇到問題或者發現可以改善的地方,歡迎大家留言,一起學習進步.


推薦閱讀:

Python練習第六題,生成隨機字母
關於用python抓取知乎關注的人?
Python-Numpy模塊Meshgrid函數
Python|高德交通態勢介面爬取
matplotlib繪圖——柱狀圖

TAG:Web開發 | Python | PHP |