【入门】从零开始建网站
@
说明
目标
最终效果图
流程
总结
文末“阅读原文”访问CSDN,阅读效果更佳。
说明
相信很多技术人和我一样,有个建立一个属于自己的网站的心。那如何从头到尾建立自己的网站呐?最近正好也在做这方面的内容,所以梳理整理了以下,希望能对大家有所帮助。
根据本教程,可以实现最基本的外网访问自己所搭建的网站,后续会有进阶版内容,希望能和大家一起成长,共同见证一个正儿八经的网站的诞生,如果网站能发挥点作用就更好了。
目标
从零开始建立一个外网可以正常访问的网站,内容不限。
最终效果图
![](https://filescdn.proginn.com/d4f061c390760003695a789f4c140c4e/9464a8a24829606653fc508c02554bcc.webp)
流程
首先我们要知道当用户输入一个链接地址,点击一个按钮,整个过程发生了什么事。实际的过程是十分复杂的事,这里只做了简化流程。
1.DNS解析(域名解析) DNS解析的过程就是寻找哪台机器上有你需要资源的过程,寻找的过程遵循就近原则。
2.进行TCP连接
浏览器终于得到了IP以后,向服务器发送TCP连接,TCP连接经过三次握手。
3.浏览器发送HTTP请求
4.服务器处理请求
5.浏览器解析渲染页面
6.关闭TCP连接
从上面流程我们可以看出,我们需要有个域名,DNS服务根据域名解析去寻找资源所在的IP,还需要一台服务器,这个服务器有对应的IP,资源就在这个服务器上。
购买服务器
购买服务器很简单,某宝上有,随便你选,价格不到一百一年,便宜的贵的都有,看你需求,只要点个购买按钮就可以。本人买的事98/年的某某云服务器。
购买域名
域名就是用户在地址栏输入的地址,所以是相当重要了。一般你买哪家公司的云服务产品,就附带有域名购买服务。热门的域名像.com,.cn这种肯定特别贵,但是我们是自己业余爱好搞得,没必要,就找那种一年一两块钱的就可以,我买的是wxhz.work。
备案
这简直是噩梦般的一步。因为国内的网络审查比较严,所以备案特别麻烦,如果有嫌麻烦的同学可以有两个选择,第一是花钱让服务商帮你备案,另一个就是购买境外的服务器。
难度倒是不大,就是各种不合格打回重新备案特别烦。
我在初审因为网站内容被打回了两次,网站名称被打回了两次(最后选的我的生活笔记1),短信校验被打回一次(在垃圾短信没看到)。前后耗时七天,如果你运气比较好,可能三四天就完事了。
域名解析
参考文档解析完成后,就相当于可以通过访问www.wxhz.work
访问自己的网址了,但是此时我网站还什么都没做,所以还访问不了。
基本的配置
先用Python的flask框架简单实现Hello world。好,现在我们有了服务器,有了公网IP,有了域名,就可以实现一个最简单的网站了。那当然是最流行的Hello World!了。不过我们不能这么老套,就Fuck World!好了。
记住,现在是最基本最基本的教程,不需要考虑太多,只需要外网能访问就行!
如果你服务器有Python3,不用安装,如果没有,安装Python3。 创建虚拟环境
pip3 install virtualenv cd 你的目录 :cd /root/python/env virtualenv 你的虚拟环境名 :virtualenv venv 切换到你的虚拟环境:source /root/python/env/venv/bin/activate
成功的标志:(venv) [root@poplang env]#
安装flask pip install flask
去xx云给你的服务配置一个端口
让服务跑起来(上线)
写一个简单的demo,放在服务器。
"""
-*- coding: utf-8 -*-
@Author : blyang
@project : PythonCode
@Time : 2021/1/4 21:35
"""
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return '
Fuck World!
'
if __name__ == "__main__":
app.run(host='0.0.0.0', port=4000)
cd 到文件所在目录,运行起来 Python Hello.py
,效果如图:随意浏览器,地址栏输入 47.111.250.14:4000
,即可访问我的最基础的个人网站:-
总结
这是最基本最基本的教程,实际生产环境肯定不会如此简陋,这我还是用的flask自带的调试服务器。但是千里之行,始于足下,我们慢慢完善这个网站,我的初步构想是把它打造成一个流浪动物救助/认领网站,有以下功能。
收录各地动物救助站 账户注册,登陆 发帖功能 评论功能 分享功能 web+移动端 希望能一起见证这个网站的成长。后期可能会有Java做这个项目。
相关推荐