目前想要本身搭建一個我的博客,在這記錄博客搭建的過程。html
博客採用Django框架搭建。該框架能夠快速搭建出一個網站,而且是一個開源框架,由python編寫。python
一、目前的博客想法比較簡單。主要對博客的功能有以下幾個方面:mysql
暫時先想着實現這些功能,等搭建好以後在完善其餘模塊。git
二、須要哪些技能web
三、搭建虛擬環境sql
我的開發環境是Ubuntu系統,python3.6,pycharm。windows環境下也相似。數據庫
今天想着先把環境搭建好。django
首先搭建虛擬環境:json
選定一個目錄做爲開發目錄,我選擇了MyBlogs文件夾。windows
進入MyBlogs。
felix@felix-computer:~/PycharmProjects$ mkdir MyBlogs felix@felix-computer:~/PycharmProjects$ cd MyBlogs felix@felix-computer:~/PycharmProjects/MyBlogs$
搭建pipenv環境,首先要安裝pipenv。執行以下命令。
pip3 install pipenv
初始化虛擬環境:pipenv install
安裝django:pipenv install django
而後初始化包管理:git init
而後使用pycharm打開剛纔建立的目錄。打開會發現多了兩個文件,一個是Pipfile,一個是Pipfile.lock文件,而且下面的terminal,已經進入了虛擬環境
建立.gitignore文件。
# python的 # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] *$py.class # C extensions *.so # Distribution / packaging .Python build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ wheels/ *.egg-info/ .installed.cfg *.egg MANIFEST # PyInstaller # Usually these files are written by a python script from a template # before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest *.spec # Installer logs pip-log.txt pip-delete-this-directory.txt # Unit test / coverage reports htmlcov/ .tox/ .nox/ .coverage .coverage.* .cache nosetests.xml coverage.xml *.cover .hypothesis/ .pytest_cache/ # Translations *.mo *.pot # Django stuff: *.log local_settings.py db.sqlite3 # Flask stuff: instance/ .webassets-cache # Scrapy stuff: .scrapy # Sphinx documentation docs/_build/ # PyBuilder target/ # Jupyter Notebook .ipynb_checkpoints # IPython profile_default/ ipython_config.py # pyenv .python-version # celery beat schedule file celerybeat-schedule # SageMath parsed files *.sage.py # Environments .env .venv env/ venv/ ENV/ env.bak/ venv.bak/ # Spyder project settings .spyderproject .spyproject # Rope project settings .ropeproject # mkdocs documentation /site # mypy .mypy_cache/ .dmypy.json dmypy.json # Pyre type checker .pyre/ # pycharm的 # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 # User-specific stuff .idea/**/workspace.xml .idea/**/tasks.xml .idea/**/usage.statistics.xml .idea/**/dictionaries .idea/**/shelf # Generated files .idea/**/contentModel.xml # Sensitive or high-churn files .idea/**/dataSources/ .idea/**/dataSources.ids .idea/**/dataSources.local.xml .idea/**/sqlDataSources.xml .idea/**/dynamic.xml .idea/**/uiDesigner.xml .idea/**/dbnavigator.xml # Gradle .idea/**/gradle.xml .idea/**/libraries # Gradle and Maven with auto-import # When using Gradle or Maven with auto-import, you should exclude module files, # since they will be recreated, and may cause churn. Uncomment if using # auto-import. # .idea/modules.xml # .idea/*.iml # .idea/modules # CMake cmake-build-*/ # Mongo Explorer plugin .idea/**/mongoSettings.xml # File-based project format *.iws # IntelliJ out/ # mpeltonen/sbt-idea plugin .idea_modules/ # JIRA plugin atlassian-ide-plugin.xml # Cursive Clojure plugin .idea/replstate.xml # Crashlytics plugin (for Android Studio and IntelliJ) com_crashlytics_export_strings.xml crashlytics.properties crashlytics-build.properties fabric.properties # Editor-based Rest Client .idea/httpRequests # Android studio 3.1+ serialized cache file .idea/caches/build_file_checksums.ser
建立README.md文件,用來寫描述文件
最後的目錄結構。
四、建立django項目。
在命令行執行下面命令建立django項目:
django-admin startproject myblog
能夠看到多了myblog文件夾,這個就是簡單的建立了django項目。
而後建立博客app
執行以下命令:
cd myblog/ # 進入 python manage.py startapp blog # 建立博客app
效果以下:(myblog目錄下多了剛纔建立的blog文件夾)
建立完後,pycharm可能沒法識別咱們的django目錄,設置一下。
而後設置django的服務以及端口:
接下來打開django的settings文件,修改一些設置。
# LANGUAGE_CODE = 'en-us' LANGUAGE_CODE = 'zh-hans' # 語言設置成簡體中文 # TIME_ZONE = 'UTC' TIME_ZONE = 'Asia/Shanghai' # 時區設置成東八區 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'blog.apps.BlogConfig', # 將本身建立的app添加到設置中 ] # 須要使用mysql,更改django默認數據庫引擎 DATABASES = { # 'default': { # 'ENGINE': 'django.db.backends.sqlite3', # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), # } 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'myblogs', # 要鏈接的數據庫,鏈接前須要建立好 'USER': 'root', # 鏈接數據庫的用戶名 'PASSWORD': 'felixwang', # 鏈接數據庫的密碼 'HOST': '127.0.0.1', # 鏈接主機,默認本級 'PORT': 3306 # 端口 默認3306 } }
由於使用數據庫是mysql,因此要在myblog文件夾中的__init__.py中指定:
# 將mysql當作默認數據庫 import pymysql # 經過pipenv install pymysql 安裝 pymysql.install_as_MySQLdb()
最後運行django 服務
python manage.py runserver
飄紅的地方說咱們沒有作數據庫遷移。停掉服務,執行以下兩條命令:
python manage.py makemigrations # 數據庫遷移
python manage.py migrate
最後咱們運行服務:
此次沒有飄紅。咱們打開瀏覽器,運行上圖中的地址。
至此咱們的環境就搭建好了。不知不覺花了將近兩個多小時寫博客。恩,等有空繼續。記得git add 和 git commit 用git保存咱們的進度。