前言

人生苦短,我用python

这是之前经常听到的一句笑谈。因为新公司很多业务是用的python语言,所以这几天也一直在学习python的一些东西。

作为一个之前一直java后端的开发人员,对比java最大的感受如下:

  • 语法简洁优美
  • 开发效率高
  • 支持类库强大

这仅仅是我一家之言。从我接触python到现在也就一个星期时间,我用了两天时间自己搭建了一个建议博客小站,哈哈,想想还是挺有成就感的。

资源

因为前天购买了一个域名,所以昨天也是加班加点把一个简易的博客小站部署到了线上去。

我自己的博客小站域名为:www.floweroman.com
因为我自己的网名:'一枝花算不算浪漫', 而floweroman=flower romantic。 哈哈,这都是自己yy的,但是程序员还是应该保持点骚气。

这里也特别感谢追梦人物的系列博客,给我的帮助很多。

本人博客源码git:https://github.com/barrywangmeng/blogProject.git
后期我会一步步完善博客的内容,使得它真正可看可用。

教程

  • 代码
    上面资源中已经发出了教程以及我自己的源码,感兴趣的朋友可以自行查看,这里不做重点赘述。

  • 域名购买
    当我们项目写完的时候我们当然是要挑选一个自己满意的域名。
    这里不建议从国内一些网站上购买域名(我一个同事在国内一家网站上购买的域名,最近被GA打电话要求去备案),所以我们直接从外国网站上买,避免一些不必要的麻烦。

这里推荐网址:https://www.namesilo.com/
如下图:
这个网站是可以支持支付宝的,基本很多域名都是$8.9 一年。当然还有其他国外的域名网站可以购买,大家可以自行搜索。

  • 服务器购买
    本打算购买国外服务器的,以后还可以搭梯子之类的。
    但是前一段时间阿里和腾讯云都有做活动,10元每月的价格实在心动,所以这次就在腾讯云注册了服务器。(特别说明:腾讯云注册服务器后可送一个星期的体验时间)

购买的服务器推荐系统为:Ubuntu 64位

腾讯云地址:https://cloud.tencent.com

  • 购买的主机状况以及运行状态:

  • 续费情况:(这是之前活动每个人可以续费三次)

我们可以点击后面的登陆或者用第三方的xshell等登陆自己的服务器:

服务器和域名均购买完成后,我们将域名映射到我们自己的ip上:

  • 代码部署
    这里才是今天要讲的重点:

一、 github仓库
把整个django项目上传到github,方便把代码拉到服务器(你也可以使用xftp软件)

二、创建新用户
一般不建议在root用户下进行配置,我们可以创建一个新用户,xshell连接远程服务器,输入命令:

  1. sudo useradd -m -s /bin/bash wangmeng #创建新用户 wangmeng替换为你自己的用户名,下面一样
  2. sudo usermod -a -G sudo wangmeng #把新用户加入超级权限组
  3. sudo passwd wangmeng #为新用户设置密码
  4. su - wangmeng #切换到新用户

我们看到@前面已经是wangmeng开头了,说明新用户已经创建好了:

三、安装软件
首先,更新一下服务器的包安装工具

  1. sudo apt-get update
  2. sudo apt-get upgrade

下一步安装主要用的的软件,nginx、git和创建虚拟环境的virtualenv:

  1. sudo apt-get install nginx
  2. sudo apt-get install git python3 python3-pip
  3. sudo pip3 install virtualenv

nginx安装完就会自动启动,这时你到浏览器输入域名或者ip就能看到nginx的欢迎界面:

四、上传代码到服务器

  1. mkdir -p ~/sites/www.wangmeng.com

打开目录

  1. cd ~/sites/www.wangmeng.com

我们的代码要在虚拟环境里运行,所以先创建虚拟环境

  1. virtualenv --python=python3 env #env是虚拟环境名字,没必要和这里的一样

运行完以后执行 ls 命令,发现多了一个env文件夹,这就是我们要的虚拟环境目录:

五、拉取git代码
下一步要把代码从github拉到服务器,git工具我们之前已经安装好了,执行命令:

  1. git clone https://github.com/barrywangmeng/blogProject.git

六、安装依赖
现在代码已经成功放到服务器里了
安装其他依赖
首先进入虚拟环境,在虚拟环境下打开django项目目录,由requirements.txt安装依赖。

  1. source env/bin/activate #进入虚拟环境
  2. cd blogProject #进入项目目录
  3. pip install -r requirements.txt #安装依赖

七、后续操作

  1. python manage.py collectstatic

生成数据库文件

  1. python manage.py migrate

创建超级用户(后台管理使用)

  1. python manage.py createsuperuser

配置nginx

  1. deactivate #退出虚拟环境
  2. cd /etc/nginx/sites-enabled
  3. sudo rm -f default #删除默认配置文件
  4. cd /etc/nginx/sites-available
  5. sudo rm -f default #删除默认配置文件

设置配置文件

  1. sudo vim myblog.conf

输入如下代码:

  1. server {
  2. charset utf-8;
  3. listen 80;
  4. server_name www.floweroman.com;
  5. location /static {
  6. alias /home/wangmeng/sites/www.floweroman.com/blogProject/static;
  7. }
  8. location /media {
  9. alias /home/wangmeng/sites/www.floweroman.com/blogProject/media;
  10. }
  11. location / {
  12. proxy_set_header Host $host;
  13. proxy_pass http://unix:/tmp/www.floweroman.com.socket;
  14. }
  15. }

按ESC退出编辑,继续输入:wq,保存并退出文件

八、激活网站

  1. sudo ln -s /etc/nginx/sites-available/myblog.conf /etc/nginx/sites-enabled/myblog.conf

测试配置语法问题:

  1. sudo service nginx configtest

重启nginx服务器:

  1. sudo service nginx restart

使用gunicorn
进入虚拟环境下的blogProject(存放代码的目录)网站目录

  1. cd /home/wangmeng/sites/www.wangmeng.com/
  2. source env/bin/activate

安装gunicorn:

  1. pip install gunicorn

用gunicorn启动服务器进程:

  1. cd blogProject #先进入代码目录
  2. gunicorn --bind unix:/tmp/www.wangmeng.com.socket blogProject.wsgi:application #启动gunicorn

自动启动gunicorn:

  1. gunicorn --bind unix:/tmp/www.wangmeng.com.socket blogProject.wsgi:application&

好了,到了这里已经大功告成了!访问www.floweroman.com即可出现我们的博客首页了。

大家如果有什么问题都可以问我。

[python]使用django快速生成自己的博客小站,含详细部署方法的更多相关文章

  1. django初探-创建简单的博客系统

    django第一步 1. django安装 pip install django print(django.get_version()) 查看django版本 2. 创建项目 打开cmd,进入指定目录 ...

  2. django初探-创建简单的博客系统(一)

    django第一步 1. django安装 pip install django print(django.get_version()) 查看django版本 2. 创建项目 打开cmd,进入指定目录 ...

  3. Django练习项目之搭建博客

    背景:自从今年回家过年后,来到公司给我转了试用,我的学习效率感觉不如从前,而且刚步入社会我总是想要怎么想明白想清楚一些事,这通常会花掉,消耗我大量的精力,因为我想把我的生活管理规划好了,而在it技术学 ...

  4. python random模块 - 小驹的专栏 - 博客频道 - CSDN.NET

    python random模块 - 小驹的专栏 - 博客频道 - CSDN.NET python random模块 分类: python 2011-11-15 15:31 6037人阅读 评论(2) ...

  5. django初探-创建简单的博客系统(二)

    上篇django初探-创建简单的博客系统(一)已经记录了Django实现博客的发布的整个过程,接下来继续说明博客标题和内容的显示. 显示博客详细 将博客内容保存到数据库还不是发布博客的终极目的,博客一 ...

  6. python海明距离 - 5IVI4I_I_60Y的日志 - 网易博客

    python海明距离 - 5IVI4I_I_60Y的日志 - 网易博客 python海明距离   2009-10-01 09:50:41|  分类: Python |  标签: |举报 |字号大中小  ...

  7. [Python学习] 简单网络爬虫抓取博客文章及思想介绍

            前面一直强调Python运用到网络爬虫方面很有效,这篇文章也是结合学习的Python视频知识及我研究生数据挖掘方向的知识.从而简介下Python是怎样爬去网络数据的,文章知识很easy ...

  8. MWeb 生成静态网站&博客

    MWeb 生成静态网站 & 博客 MWeb 的静态网站分类 在 MWeb 的文档库中,有两种分类,一种是普通分类,另一种就是静态网站分类了.你可以直接新增一个静态网站分类,也可以在普通分类的顶 ...

  9. [2017BUAA软工助教]博客格式的详细说明

    一.为什么要强调博客格式 可以对比粗读一下这几篇博客然后自己感受一下博客格式对博客阅读体验的影响: MarkDown流:    [schaepher]2017春季 JMU 1414软工助教 链接汇总 ...

随机推荐

  1. [UWP]创建一个ProgressControl

    1. 前言 博客园终于新增了UWP的分类,我来为这个分类贡献第一篇博客吧. UWP有很多问题,先不说生态的事情,表单.验证.输入.设计等等一堆基本问题缠身.但我觉得最应该首先解决的绝对是Blend,那 ...

  2. 分区表SQL调优/优化(Tuning)时容易“被欺骗”的场景之一

    近几天没有用户找到,除了看看书,就是上网浏览点东西,好不惬意.可惜好景不长,正在享受悠闲惬意的日子时,一个用户的工作人员QQ找到我,说他们在统计一些数据,但一个SQL特别慢,或者说就从来没出过数据,我 ...

  3. 云计算之路-阿里云上-容器难容:优化自建 docker swarm 集群的部署

    在上周六遭遇阿里云容器服务 swarm 版的故障之后,我们决定还是走自建 docker swarm 之路,只要不是阿里云底层的问题,我们相信会找到办法解决或避开自建 docker swarm 不稳定的 ...

  4. 测试与发布(Beta版本)

    评分基准: 按时交 - 有分(测试报告-10分,发布说明-10分,展示博客-10分),检查的项目包括后文的两个方面 测试报告(基本完成5分,根据完成质量加分,原则上不超过满分10分) 发布说明(基本完 ...

  5. C语言函数嵌套调用作业

    一.实验作业 1.1 PTA题目:6-4 十进制转换二进制 设计思路 如果n大于1 对n/2继续进行该函数运算 输出n%2的值 代码截图 调试问题 我第一次做的时候判断的边界条件是大于0继续进行运算, ...

  6. 设计模式NO.1

    设计模式NO.1 根据作业要求完成下列题目: 题目1: (1)要求:某系统日志记录器要求支持多种日志记录方式,如文件记录.数据库记录等:用户可以根据要求动态选择日志记录方式.使用Factory模式来设 ...

  7. scrapy 避免被ban

    1.settings.pyCOOKIES_ENABLED = False DOWNLOAD_DELAY = 3 ROBOTSTXT_OBEY = Falseip代理池设置 IPPOOL = [{'ip ...

  8. hadoop基础教程免费分享

    提起Hadoop相信大家还是很陌生的,但大数据呢?大数据可是红遍每一个角落,大数据的到来为我们社会带来三方面变革:思维变革.商业变革.管理变革,各行业将大数据纳入企业日常配置已成必然之势.阿里巴巴创办 ...

  9. JAVA_SE基础——26.[深入解析]局部变量与成员变量的区别

    黑马程序员入学blog ... 如果这章节很难懂的话应该返回去先看  JAVA_SE基础--10.变量的作用域 定义的位置上区别: 1. 成员变量是定义在方法之外,类之内的. 2. 局部变量是定义在方 ...

  10. ZendStudio的使用技巧

    为了使得ZendStudio支持volt模版可以在首选项中的ContentType加上.volt就行 在ZendStudio中的->help中有一个installNewssoftWare,然后会 ...