我要写一个博客的网站,简单来说,就是能发表一篇篇信息的简单网站,怎么弄?
(一)python
先把python3.x安装好,对,不是php,是python,用它来开发web网站。
https://www.python.org/downloads/ ,在这个地方,找到对应平台的python,下载(比如python-3.7.4-macosx10.9.pkg),安装之,如果成功,查看一下版本:
python3 --version
看到这样的回应:
Python 3.7.4
为了方便,给python3起个简单的别名,在.bash_profile或.zshrc中,增加一句:
/usr/local/bin/python3
到这里,我们的语言主角python,就算准备好了。
接下来,怎么撑起一个网站呢,怎么说也要上框架了吧? 没错,可是那么多web框架,用哪一个呢?不用多想,也不要多说,就用django。
(二)django
先是安装django,我在mac机上(后面会介绍怎么在linux上安装),这样安装就好(在安装python3.x时,pip3已经自动安装好):
sudo pip3 install Django
查看一下django的版本:
py -m django --version
至此,这个网站的框架已经准备好了,通过它还可以启动web服务,可以直接访问它,这里用命令简单试一下。
先创建一个测试的目录,作为web项目所在地,然后cd到这个目录,执行:
django-admin startproject myblog
这时一个叫myblog的目录就创建起来,而且里面布置了框架脚本,如截图:
使用manage.py脚本来启动web服务:
py manage.py runserver
ok,这个网站已经运行起来了。
最后,终极问题来了,刚才我是在mac机上创建这个网站的,但最终怎么部署到线上呢?比如我租了一个阿里云的服务器,怎么把这个网站弄上去呢?
(三)部署
我服务器的系统是ubuntu(阿里云更换服务器系统的操作说明:https://help.aliyun.com/document_detail/50134.html?spm=a2c4g.11186623.2.5.6rqKRn ),先来看一下python是不是安装好了:
所以python是有的,而且python2跟python3都有,但是pip3是没有的,所以安装pip3。在安装之前,先更新一下软件包的信息,以便可以找到相应的软件包来下载:
sudo apt update
然后安装pip3:
sudo apt install python3-pip
也可以给python3加一个简单的别名,在~/.bashrc中,增加一句:
alias py='python3'
然后让这个配置生效,执行一下:
source .bashrc
这时你可以用py来代替python3了,好了,python就准备好了。
现在到django:
sudo pip3 install Django
然后就是创建博客项目啦,找一个目录吧,然后像上面说的那样启动django服务,如截图:
你可能对“127.0.0.1”耿耿于怀,既然我公网ip都有了,至少我可以用这个公网ip来访问吧? 当然可以,改一下xblog/settings.py这个配置文件(里面有很多重要的配置项):
ALLOWED_HOSTS = ['xx.xx.xx.xx', 'freep2p.cn', 'localhost', '127.0.0.1']
这里加上公网ip,或者ip绑定的url(比如用于你的网站,我的是:www.freep2p.cn ,欢迎来访)。
然后,这样启动django服务:
py manage.py runserver 0.0.0.0:3389
'0.0.0.0'指允许settings.py设置的ip来访问。那么,端口为什么是3389?不是随便给的!这个要看服务器给你分配了哪些端口。 怎么知道分配了什么端口呢,对于阿里云,在实例的“更多”的菜单中,“网络和安全组”->“安全组配置”处,可以看到分配的端口,比如我的:
这里有个知识点,ip定位到机器,端口定位到进程(这里是django),如果你访问不到,你应该推理到,如果ip是对的那就能访问到机器,那有可能是端口出了问题,也有可能是django的设置做了访问限制。
还有一个问题,为什么是3389,为什么不是网站默认的80端口?那是因为我还没有添加,这个下一节引入域名时再讲,现在暂且使用这个预分配的端口。
于是,这样简单配置跟启动django后,就可以在浏览器用公网ip来访问了:
好了,服务器的web框架也搭建好了,在丰富这个博客项目之前,你可能对使用ip来访问还耿耿于怀,为什么不申请一个域名来访问呢?这是下一个要解决的问题。
总结一下,本文介绍了怎么搭建起web网站的框架,涉及python与django的安装与使用等内容,这一步之后还有很多工作要做,静下心来吧。