使用Django搭建自己的博客网站

449 阅读5分钟

纯前端小白,和前端唯一的缘分就是上大学时参加网页制作大赛前两天通宵看完了举办方给的入门视频,然后和队友对着电影天堂页面做了个翻版。自此之后就是做后端、网络安全、二次开发,和前端开发再无交集。

image.png

之前在博客园写博客,去年有段时间博客园长时间做内容审查,其他人的文章没法看,自己的文章发布也处处受限,就基本弃用;后用了段时间的Hexo和WordPress,现成的博客框架,但是Hexo局限性比较大,说难听点,虽然Hexo可配置项很多,但是还称不上灵活。而WordPress做安全的都知道,有针对WordPress的渗透工具WPScan。 所以,为什么不自己学习前端,前后端全包呢。

image.png

写这些博文的目的主要是为了让我以后忘了还有地方可查,毕竟学得太杂,工作上也没机会用得上,如果对你刚好也有帮助,那就最好不过了,开始跟着Django官方文档学习。

image.png

环境搭建

我用Anaconda管理虚拟环境,配置源什么的也都方便些,首先创建虚拟环境,点击Create

image.png 输入环境名,选择Python版本,不同的Django版本对应不同的Python版本

image.png 创建完毕后,配置一下Anaconda的源,参考Anaconda 配置源(Windows 10) - 简书 (jianshu.com)

# 查看当前源
conda config --show
#配置清华源、中科大源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge 
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/

# 设置搜索时显示通道地址
conda config --set show_channel_urls yes

conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/
conda config --set show_channel_urls yes

# 查看添加的源
conda config --get channels

配置好后,anaconda的下载包的速度也就很快了,在虚拟环境目录下搜索安装Django

image.png

项目初始化

环境搭建好了,使用django-admin(安装Django顺便带的)命令创建Django项目,用Everything找到django-admin.exe所在路径

image.png 在django-admin.exe所在目录下打开cmd命令窗口,cd到目录,使用命令

django-admin startproject mysite

此处有可能会报错,报错原因是命令调用的python.exe路径不对,我们使用python.exe的绝对路径来运行上述命令,比如我的虚拟环境中的python路径为D:\anaconda3\envs\Blog\python.exe,则将命令改为

D:\anaconda3\envs\Blog\python.exe django-admin.py startproject mysite

mysite项目创建成功,项目位置找不到可以使用everything找

image.png 用Pycharm打开mysite项目,并将Python编译器改为Ananconda虚拟环境下的python.exe,因为之前已经安装好Django了,导入包便不会报错。

image.png (以下内容复制自官方文档)

让我们来看看startproject创建了什么:

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py

这些文件是:

  • 外部根目录是项目的容器。它的名字对Django来说并不重要;您可以将其重命名为您喜欢的任何内容。mysite/
  • manage.py:一个命令行实用程序,允许您以各种方式与此Django项目进行交互。您可以在django-admin和 manage.py 中阅读有关的所有详细信息。manage.py
  • 内部目录是项目的实际 Python 包。它的名称是Python包名称,您需要使用它来导入其中的任何内容(例如)。mysite/``mysite.urls
  • mysite/__init__.py:一个空文件,告诉 Python 此目录应被视为 Python 包。如果您是Python初学者,请在官方Python文档中阅读有关包的更多信息
  • mysite/settings.py:此 Django 项目的设置/配置。Django设置将告诉您有关设置如何工作的所有信息。
  • mysite/urls.py:此 Django 项目的 URL 声明;Django驱动的网站的“目录”。您可以在 URL 分派器中阅读有关 URL 的详细信息。
  • mysite/asgi.py:ASGI兼容Web服务器的入口点,为您的项目提供服务。有关更多详细信息,请参阅如何使用 ASGI 进行部署
  • mysite/wsgi.py:与 WSGI 兼容的 Web 服务器的入口点,用于为您的项目提供服务。有关更多详细信息,请参阅如何使用 WSGI 进行部署

验证项目的有效性

cd到manager.py所在的目录下,运行命令

python manage.py runserver

此处的python指虚拟环境中的python,后面也都一样,该不赘述,到Pycharm下,可以通过配置直接运行

image.png

image.png 点击运行

image.png 访问127.0.0.1:8000

image.png Django项目启动成功,,一个纯粹用Python编写的轻量级Web服务器。我们已经在Django中包含了这一点,因此您可以快速开发东西,而不必处理配置生产服务器(例如Apache)的问题,直到您准备好进行生产为止。

现在是注意的好时机:不要在类似于生产环境的任何东西中使用此服务器。它仅用于开发时使用。(我们的业务是制作Web框架,而不是Web服务器)

更改端口

默认情况下,runserver命令在内部 IP 端口 8000 处启动开发服务器。

如果要更改服务器的端口,请将其作为命令行参数传递。例如,以下命令在端口 8080 上启动服务器:

...> python manage.py runserver 8080

如果要更改服务器的 IP,请将其与端口一起传递。例如,要侦听所有可用的公共 IP(如果您正在运行 Vagrant 或想要在网络上的其他计算机上展示您的工作,这将非常有用),请使用:

...> python manage.py runserver 0:8000

**0** 是 **0.0.0.0** 的快捷方式。可以在运行服务器参考中找到开发[`服务器`](https://docs.djangoproject.com/en/4.0/ref/django-admin/#django-admin-runserver)的完整文档。

整体的项目环境已经搭建完毕,等我熟悉Django的具体功能后再写下一篇

1489109483844_45aabb61053111e79e9380e650026b90.gif