欢迎来到Felix的博客

Do the right things! And talk is cheap,show me your code!

搭建自己的博客(一):前期准备

目前想要自己搭建一个个人博客,在这记录博客搭建的过程。

博客采用Django框架搭建。该框架可以快速搭建出一个网站,并且是一个开源框架,由python编写。

 

1、目前的博客想法比较简单。主要对博客的功能有如下几个方面:

暂时先想着实现这些功能,等搭建好之后在完善其他模块。

2、需要哪些技能

3、搭建虚拟环境

个人开发环境是Ubuntu系统,python3.6,pycharm。windows环境下也类似。

今天想着先把环境搭建好。

 首先搭建虚拟环境:

选定一个目录作为开发目录,我选择了MyBlogs文件夹。

进入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
.gitignore

创建README.md文件,用来写描述文件

最后的目录结构。

4、创建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保存我们的进度。

posted @ 2018-11-04 15:53  寂静的天空  阅读(680)  评论(1编辑  收藏  举报
个人感悟: 一个人最好的镜子就是自己,你眼中的你和别人眼中的你,不是一回事。有人夸你,别信;有人骂你,别听。一根稻草,扔街上就是垃圾;捆上白菜就是白菜价;捆上大闸蟹就是大闸蟹的价。 一个人,不狂是没有出息的,但一直狂,肯定是没有出息的。雨打残花风卷流云,剑影刀光闪过后,你满脸冷酷的站在珠峰顶端,傲视苍生无比英武,此时我问你:你怎么下去? 改变自己就是改变自己的心态,该沉的时候沉下去,该浮的时候浮上来;不争名夺利,不投机取巧,不尔虞我诈;少说、多听、多行动。人每所谓穷通寿夭为命所系,岂不知造物之报施,全视人之自取。 座佑铭:每一个不曾起舞的日子,都是对生命的辜负。