Django新手教程7,启动服务器

打开cmd,利用之前学的技能,将我们为django准备的虚拟环境激活,进入到项目目录,也就是父mysite目录下
D:/django_project/mysite
你会看到里面有一个一个mysite目录和manage.py
之前,我们新建了项目,但是我们还没确认项目是否新建成功,所以,为了确认一下,我们敲入
python manage.py runserver

django内置了一个服务器软件,你可以认为是简化版的apache,但是足够调试使用了,注意,仅仅够调试,服务器软件的功能它基本都有,但是,真正部署起来,还是要来专业人士(nginx或apache)来做,因为面对业界复杂的环境,比如高访问量,这个服务器软件随时会崩。我们离部署使用还远的呢,所以就姑且用着django内置的服务器软件吧.
启动内置的服务器软件,这样,我们的计算机就可以提供网络服务了。

image.png

这时,打开浏览器,输入
127.0.0.1:8000
如果不出意外,那么,你将看到以下的界面


image.png

如果你的英语还不错的话,除了看到恭喜二字,你还能看到他提示你需要新建一个APP,此外,你能够看到这个界面,一方面是因为我们处于开发阶段,所以设置中DEBUG参数是TRUE,因此,在我们还没有建立任何APP的情况下,我们看到了这个恭喜的页面。关于这个开发模式,这是很有作用的模式,在我们开发的时候,我们务必保持DEBUG为TRUE,也就是保持它的默认值,不用去管他们,这种情况下,如果我们的代码出现问题,他会在浏览器上把问题详细列出来,方便我们寻找bug,否则,正常情况下,网页加载出问题,一般都会出现什么404错误,503错误之类的。当然,到了部署的时候,就一定要记得把这个关掉,这涉及到安全问题,这个DEBUG模式,会泄露我们系统的参数。管他呢,反正我们离部署还差得远,到时再说。
很多人看到这里会比较沮丧,认为自己离部署这么远,那么何年何月才能够做出一个能够投入使用的东西呢?自己啥也不会,也没有租用什么服务器,更没有什么域名,学这django,也就只能在自己的计算机上搞搞,没有什么成就感。那你就错了!
只要你处于一个局域网内,假设你们宿舍共用一个wifi,或者你们家共用一个wifi,再或者,你们部门共用一个wifi,我觉得这些场景应该比较常见,那么你在学完我的教程之后,至少能够在局域网内,为大伙建设一个云盘(你可以拿旧机器和就硬盘来做硬件,废物利用)。再远一步,假如你能够掌控宿舍的路由器,掌控家里的路由器,掌控家里路由器,掌控部门的路由器,那么通过一些设置,别的宿舍的同学,你的小区里其他人,其他部门的人就也能使用你搭建的云盘。使用范围也还是挺大的。
不信,请跟着我试试,先确认你的计算机处于一个局域网内,实在不行,把手机热点打开,连接到手机热点,和手机组成一个局域网。
我们先退出刚刚启动的服务器软件。
在cmd里面我们也看到它的提示说,按ctrl+c可以退出
照做就是了,有时候可能要多按几次才能退出。
敲入
ipconfig

image.png

找到关键的字眼,获得你的计算机的ip地址。比如我的ip就是
172.20.10.4。你要记下你的ip。以后我讲解的时候一般都是用这个ip地址,你要对应改成自己的ip地址。
然后我们打开文件夹,进入到我们的项目管理的目录下

image.png

找到settings.py用sublime打开,并找到里面的allowed_hosts参数

image.png

把我们刚刚记下的ip地址用单引号引起来,填进去,然后按Ctrl+S保存修改

image.png

回到我们的cmd,敲入
python manage.py runserver 172.20.10.4:80

这时候你在自己的浏览器上输入自己的ip地址就可以看到刚刚那句恭喜的话。你在自己的手机上(连在了同一个局域网),用手机的浏览器输入你计算机的ip地址,同样也能看到恭喜的页面。这说明,在一个局域网内,你开发的django应用别人也是能够使用的!是不是很开心,假如你像老王一样是一个诗人,你只要把诗写进一个html文档里面,马上就可以发布了。整个局域网的人都能上去拜读!
这里解释一下刚刚所做的一切:
获取ip就不多说了,这是局域网内,别人找到你的关键所在。
那个allowed_hosts参数,根据django官方的解释是可以防止host头攻击,什么是host头呢,其实,在我们的例子中就是ip地址,他就是允许浏览通过输入ip地址来向我们的django发送访问请求。将来你有了域名,比如你买了laowang.com作为网页的域名,那么要允许别人通过这个域名来访问你的网站,你就必须把‘laowang.com’也放进这个参数设置之中。
而我们在跑runserver的时候,添加了两个参数,第一个参数是
172.20.10.4
这个是在设置服务器的ip,我们的计算机在局域网中的ip可以用作服务器的ip,因为别的机器只有通过这个ip才能能找到你,这其中涉及到的路由问题,你有兴趣可以阅读思科的教程。这里我们暂且可以不管,这个如果你偷懒,你也可以输入0.0.0.0,效果是一样的,他会自动把我计算机的ip包括进去,更偷懒,我们还可以只写一个0来代表这个地址,一个零作为缩写来代替四个零。
第二个参数80表示的是我们的服务器监听80号端口。一般来说,我们通过浏览器输入地址,后面不加上端口的话,浏览器就会默认我们需要的是http服务,会自动帮我们加上80的端口号,再去向服务器发送服务请求。这样一来别人访问你的时候就不用特地加上端口号了。
完成以上的步骤,我们只需要的局域网内的任何一台计算机的浏览器上输入我们的ip号就可以访问我们的网站了。
咱们的开发过程就保持这样的参数吧,让整个局域网的人都能看到我们的开发进程!

推荐阅读更多精彩内容