百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

如何用Python快速部署一个博客网站,打造属于自己的“QQ空间”

bigegpt 2024-09-27 00:40 3 浏览


阅读前先讲讲本文中需要的基本技能,起码要知道或者能自己去百度或者谷歌了解一下:

  • 编程语言:Python
  • 系统框架:Django
  • 数据库:MySQL
  • 服务架构:Uwsgi+Nginx
  • IDE:Pycharm
  • 系统:Linux
  • 购买服务器

    首先最简单的搭建服务器的方式就是去腾讯云、百度云或者阿里云买一个云服务器,注意不是

    云虚拟主机,选择Linux系统( 包括centos或Ubuntu),购买成功后,记住IP号和你设置的密码。

    新用户第一年一般都很便宜,价格在60-200不等。尽量不要使用其他产品,便宜是便宜但是很坑。

    连接服务器

    使用各种可以远程连接的软件如xshell或者Termius等,连接我们购买的云服务器。以Termius为例,点击+NEW HOST,按提示输入内容(主要是ip地址跟用户名和密码):

    连接成功后,即可进入服务器终端进行命令操作:

    安装Python3

    目前,Python有两个版本,一个是2.x版,一个是3.x版,这两个版本是不兼容的。由于3.x版越来越普及,所以安装3.x版本。

    第一步:下载python3安装包,版本自己选择就好。

    wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz

    第二步:创建安装目录,具体安装位置看个人喜好。

    mkdir -p /usr/local/python3

    第三步:解压并安装安装包

    tar -zxvf Python-3.7.2.tgz
    cd Python-3.7.2
    ./configure --prefix=/usr/local/python3
    make && make install

    第四步:建立python3的软链

    ln -s /usr/local/python3/bin/python3 /usr/bin/python3

    第五步:测试是否安装成功

    $ python3 -V
    Python 3.7.2
    $ pip3 -V
    pip 18.1 from /usr/local/python3/lib/python3.7/site-packages/pip (python 3.7)

    安装和使用虚拟环境

    执行安装命令

    pip3 install virtualenv
    

    更新pip3,并再次安装virtualenv

    pip3 install --upgrade pip
    pip3 install virtualenv

    创建名字为django_env的虚拟环境

    mkvirtualenv  django_env  -p  python3
    相关命令
    # 虚拟环境
    mkvirtualenv  # 创建虚拟环境
    rmvirtualenv  # 删除虚拟环境
    workon  # 进入虚拟环境、查看所有虚拟环境
    deactivate  # 退出虚拟环境
    # pip
    pip install  # 安装依赖包
    pip uninstall  # 卸载依赖包
    pip list  # 查看已安装的依赖库
    

    进入django_env虚拟环境

    workon django_env

    Django安装及配置

    pip install django  # pip安装django
    django-admin.py startproject myproject  # 创建django项目
    cd myproject  # 进入项目文件夹
    python manage.py runserver 0.0.0.0:8000  # 运行django项目
    # 打开浏览器访问 ip地址:8003, 就可以看到Django的欢迎界面了

    Django编写的博客系统在网上有很多,可以自己去下载一些自己喜欢的模板进行更改。主要修改的有以下内容:

    将本地django目录拷贝到阿里云服务器,在windows下使用cmd窗口执行

    scp -r django/ root@<云服务器公网ip>:/root/

    1)修改settings/dev.py配置文件,将其中的DATABASES和CACHES配置项的ip地址改为云服务器公网ip地址

    这里我修改了django的默认数据库(sqlite3),改为了mysql
    ALLOWED_HOSTS = ['*'] # 28行
    
    DATABASES = { # 77行
    'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': '你的数据库名',
    'USER':'你的mysql账户',
    'PASSWORD':'你的mysql密码',
    'HOST':'localhost',
    'PORT':'3306',
    }
    }

    2)修改settings/dev.py配置文件,添加跨域请求白名单如下:

    CORS_ORIGIN_WHITELIST = (
        # 备注:允许源地址`http://127.0.0.1:8080`向当前API服务器发起跨域请求
        'http://127.0.0.1:8080',
    )

    3)在settings/dev.py文件中设置STATIC_ROOT配置项,收集Django项目使用的静态文件

    # settings/dev.py
    # 设置收集Django项目使用静态文件的保存目录
    STATIC_ROOT = os.path.join(BASE_DIR, 'static')

    4)在终端执行命令收集Django项目使用的静态文件

    python manage.py collectstatic

    5)使用settings/dev.py配置文件中的内容覆盖settings/prod.py配置文件的内容,并将settings/prod.py文件中的DEBUG改为False

    Nginx安装及配置

    1)安装Nginx

    apt-get install -y build-essential libssl-dev libtool libpcre3 libpcre3-dev make openssl zlib1g-dev
    apt-get install nginx -y

    2)检查效果

    netstat -tnulp | grep nginx

    3)服务相关命令

    # 启动停止
    systemctl start|stop|reload|... nginx
    /etc/init.d/nginx start|stop|reload|...
    /usr/sbin/nginx ... -s stop|reload
    
    # 查看信息
    nginx -V
    nginx -v
    
    # 检查配置文件
    nginx -t                 # 检查默认配置文件
    nginx -t -c file.conf    # 指定配置文件进行检查

    修改nginx.conf文件

    vim /usr/local/nginx/conf/nginx.conf
    # 不修改nginx.conf的原本内容,翻到文件最底部,添加下一行代码
    include vhost/*.conf;
    
    # 然后回到conf目录下,新建一个vhost目录,在vhost中新建一个myproject.conf文件,内容如下:
        server {
            listen      8093;
            server_name idandan.vip; # substitute your machine's IP address or FQDN
            charset     utf-8;
    
            # 静态文件所在位置,可以自己定义
            location /static {
                root /usr/local/nginx/html/django/myprojec/; 
            }
    
            location / {
                root        /usr/local/nginx/html/django/myproject;
                uwsgi_pass  127.0.0.1:8010;  # 端口跟socket端口要保持一致
                include     uwsgi_params; # the uwsgi_params file you installed
            }
        }

    uWSGI安装及配置

    什么是uWSGI

    uWSGI是一个web服务器,它实现了WSGI协议、uwsgi协议、http协议等。

    WSGI是一种Web服务器网关接口。它是一个Web服务器(uWSGI等服务器)与web应用(如用Django/Flask框架写的程序)通信的一种协议。

    uwsgi是一种线路协议而不是通信协议,常用于在uWSGI服务器与其他网络服务器的数据通信。

    作用

    进行协议之间进行转换

    与Python application进行通信

    基本命令

    安装:pip3 install uwsgi
    启动
    uwsgi–ini 配置文件路径
    
    停止
    uwsgi–stop uwsgi.pid路径

    编辑Django项目里的uwsgi.ini文件

    [uwsgi]
    # 使用nginx连接时使用
    socket=ip:port
    # 直接作为web服务器使用
    # http=ip:port
    # 项目目录
    chdir=项目目录
    # 项目中wsgi.py文件的目录,相对于项目目录
    wsgi-file=项目名/wsgi.py
    processes=4
    threads=2
    master=True
    # 保存启动之后主进程的pid
    pidfile=uwsgi.pid
    # 设置uwsgi后台运行,uwsgi.log保存日志信息
    daemonize=uwsgi.log
    virtualenv=虚拟环境目录

    最后启动nginx及uwsgi即可:

    nginx
    uwsgi --ini uwsgi.ini

    注意,在更改django项目内容后,需要重新reload uwsgi以更新更改的内容。但是我之前都是用的 uwsgi --ini /etc/uwsgi/uwsgi.ini 来重启,一段时间后发现服务器内存使用率暴增,一看进程,uwsgi有大几十个进程,原来,我用的命令是新开进程,不会把原来的进程kill。所以,使用

    uwsgi --reload /etc/uwsgi/uwsgi.pid

    就可以更新项目了。

    其他

    这样你就可以在浏览器中输入你的云服务器公网ip地址访问到你的博客网站啦,你还可以在django后台管理中添加你的想写的内容,访问公网ip/admin即可,当然你得先创建一个超级管理员,使用

    python manage.py createsupersuer

    然后输入用户名和密码即可。

    当然mysql数据库的相关内容在我的以前文章中有讲到,不会使用的可以去看看,当然你可能会遇到各种问题,遇到问题最简单的方式就是复制问题然后谷歌或者百度,实在有搞不过去的可以私信我,或者有什么软件不知道去哪下载的也可以私信我,我看到了都会回复的。

    作者简介:Python菜鸟工程师,将在接下来的一段时间内与大家分享一些与Python相关的知识点。如若文中出现问题,各位大佬多多指点,互相学习。喜欢的关注一个吧!谢谢!

    相关推荐

    有些人能留在你的心里,但不能留在你生活里。

    有时候,你必须要明白,有些人能留在你的心里,但不能留在你生活里。Sometimes,youhavetorealize,Somepeoplecanstayinyourheart,...

    Python学不会来打我(34)python函数爬取百度图片_附源码

    随着人工智能和大数据的发展,图像数据的获取变得越来越重要。作为Python初学者,掌握如何从网页中抓取图片并保存到本地是一项非常实用的技能。本文将手把手教你使用Python函数编写一个简单的百度图片...

    软网推荐:图像变变变 一“软”见分晓

    当我们仅需要改变一些图片的分辨率、裁减尺寸、添加水印、标注文本、更改图片颜色,或将一种图片转换为另一种格式时,总比较讨厌使用一些大型的图像处理软件,尤其是当尚未安装此类软件时,更是如此。实际上,只需一...

    首款WP8.1图片搜索应用,搜照片得资料

    首款WP8.1图片搜索应用,搜照片得资料出处:IT之家原创(天际)2014-11-1114:32:15评论WP之家报道,《反向图片搜索》(ReverseImageSearch)是Window...

    分享一组美图(图片来自头条)(头条美女头像)

    ...

    盗墓笔记电视剧精美海报 盗墓笔记电视剧全集高清种子下载

    出身“老九门”世家的吴邪,因身为考古学家的父母在某次保护国家文物行动时被国外盗墓团伙杀害,吴家为保护吴邪安全将他送去德国读书,因而吴邪对“考古”事业有着与生俱来的兴趣。在一次护宝过程中他偶然获得一张...

    微软调整Win11 24H2装机策略:6月起36款预装应用改为完整版

    IT之家7月16日消息,微软公司今天(7月16日)发布公告,表示自今年6月更新开始,已默认更新Windows1124H2和WindowsServer2025系统中预装...

    谷歌手把手教你成为谣言终结者 | 域外

    刺猬公社出品,必属原创,严禁转载。合作事宜,请联系微信号:yunlugongby贾宸琰编译、整理11月23日,由谷歌新闻实验室(GoogleNewsLab)联合Bellingcat、DigD...

    NAS 部署网盘资源搜索神器:全网资源一键搜,免费看剧听歌超爽!

    还在为找不到想看的电影、电视剧、音乐而烦恼?还在各个网盘之间来回切换,浪费大量时间?今天就教你如何在NAS上部署aipan-netdisk-search,一款强大的网盘资源搜索神器,让你全网资源...

    使用 Docker Compose 简化 INFINI Console 与 Easysearch 环境搭建

    前言回顾在上一篇文章《搭建持久化的INFINIConsole与Easysearch容器环境》中,我们详细介绍了如何使用基础的dockerrun命令,手动启动和配置INFINICon...

    为庆祝杜特尔特到访,这个国家宣布全国放假?

    (观察者网讯)近日,一篇流传甚广的脸书推文称,为庆祝杜特尔特去年访问印度,印度宣布全国放假,并举办了街头集会以示欢迎。菲媒对此做出澄清,这则消息其实是“假新闻”。据《菲律宾世界日报》2日报道,该贴子...

    一课译词:毛骨悚然(毛骨悚然的意思是?)

    PhotobyMoosePhotosfromPexels“毛骨悚然”,汉语成语,意思是毛发竖起,脊梁骨发冷;形容恐惧惊骇的样子(withone'shairstandingonend...

    Bing Overtakes Google in China&#39;s PC Search Market, Fueled by AI and Microsoft Ecosystem

    ScreenshotofBingChinahomepageTMTPOST--Inastunningturnintheglobalsearchenginerace,Mic...

    找图不求人!6个以图搜图的识图网站推荐

    【本文由小黑盒作者@crystalz于03月08日发布,转载请标明出处!】前言以图搜图,专业说法叫“反向图片搜索引擎”,是专门用来搜索相似图片、原始图片或图片来源的方法。常用来寻找现有图片的原始发布出...

    浏览器功能和“油管”有什么关联?为什么要下载

    现在有没有一款插件可以实现全部的功能,同时占用又小呢,主题主要是网站的一个外观,而且插件则主要是实现wordpress网站的一些功能,它不仅仅可以定制网站的外观,还可以实现很多插件的功能,搭载chro...