转载请注明来源地址和原作者(CFishHome)

前沿

上一节虚拟环境的内容浅显易懂,相信和我正在一起学习Django的朋友们都手到拈来。接下来这一篇文章将介绍Django正式学习前的必备知识,要坚持学习才能熟能生巧,三天后我因为要和舍友们去深圳浪一波,所以三天后会不更新文章,但回来后我会继续学习,然后更新学习笔记共同进步。

学前准备

在学习Django之前,我们需要准备好以下工作:

  1. 确保已经安装Python3.6以上的版本。
  2. 安装好virtualenvwrapper软件。
  3. 熟悉了virtualenvwrapper软件对虚拟环境操作的常用命令。

OK,上面的准备工作做好了,我们先创建一个名为django-env的虚拟环境,打开CMD,执行以下命令(本人安装的是Anaconda3,里面内置了Python3.x版本,所以解释器在Anaconda3文件夹内):
谈谈Python之Django搭建企业级官网(第二篇)
从上图命令执行返回的信息可以看出,Envs不是一个目录,所以Envs在当前用户目录正在被创建,并且使用D:\Anaconda3\python.exe作为虚拟环境的解释器,最后在该虚拟环境中安装pip等程序文件。
(注意,我没有添加环境变量修改虚拟环境默认安装目录)创建成功后,结果如下图:
谈谈Python之Django搭建企业级官网(第二篇)
然后执行以下命令开始安装Django2.0版本:

pip install django==2.0

运行结果如下:
谈谈Python之Django搭建企业级官网(第二篇)
我们还要安装Pycharm profession版本的软件,请自行安装,这里不介绍安装过程。注意,只有pycharm的professional版本才支持Django的开发,而community(社区版)不能用于网页开发!

URL详解

URL 是 Uniform Resource Locator 的简写,统一资源定位符。
一个 URL 由以下几部分组成:

scheme://host:port/path/filename?query-string=xxx#anchor

举个URL栗子:http://www.abc.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name
1、协议部分(scheme):该URL的协议部分为“http:”,这代表网页使用的是HTTP协议。在Internet中可以使用多种协议,如HTTP,FTP等等本例中使用的是HTTP协议。在"HTTP"后面的“//”为分隔符

2、域名部分(host):该URL的域名部分为"www.abc.com" ,一个URL中,也可以使用IP地址作为域名使用。

3、端口部分(port):跟在域名后面的是端口,域名和端口之间使用“:”作为分隔符。端口不是一个URL必须的部分,如果省略端口部分,将采用默认端口80

4、虚拟目录部分(path):从域名后的第一个“/”开始到最后一个“/”为止,是虚拟目录部分。虚拟目录也不是一个URL必须的部分。本例中的虚拟目录是“/news/”

5、文件名部分(filename):从域名后的最后一个“/”开始到“?”为止,是文件名部分,如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。本例中的文件名是“index.asp”。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名

6、锚部分(anchor):从“#”开始到最后,都是锚部分。本例中的锚部分是“name”。锚部分也不是一个URL必须的部分,后台一般不用管,前端用来做页面定位的。

7、参数部分(query-string):从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例中的参数部分为“boardID=5&ID=24618&page=1”。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。
注意: URL 中的所有字符都是 ASCII 字符集,如果出现非 ASCII 字符,比如中文,浏览器会进行编码再进行传输。

小试牛刀-第一个Django项目

创建Django项目

前面学前准备我们安装了Pycharm,这是因为创建Django项目有两种方式:

命令行方式
可视化Pycharm方式

相信大众都喜欢可视化Pycharm方式创建Django项目,因为可以不用打命令。
(1)命令行方式
打开CMD,先进入虚拟环境,接着在虚拟环境内,执行以下命令:
谈谈Python之Django搭建企业级官网(第二篇)
那么就会在虚拟环境的当前目录下建一个Django项目。这十分不人道,所以最好在虚拟环境下先进入自己喜欢的目录下再执行该命令那么就好管理了。创建成功后的Django项目含有一个文件夹和manage.py文件。
运行结果如下:
谈谈Python之Django搭建企业级官网(第二篇)
(2)可视化Pycharm方式
打开Pycharm(保证是Professional版),创建Django项目,如下图所示:
谈谈Python之Django搭建企业级官网(第二篇)
创建Django项目时,我填写了Django项目的路径还有设置已存在的解析器(这个指定解析器其实就是指定某个虚拟环境下的解析器,所以相当于指定该Django项目是放在某个虚拟环境下管理。)
结果如下:
谈谈Python之Django搭建企业级官网(第二篇)

运行Django项目

到目前为止,我们分别使用命令行方式在C:\Users目录下创建了一个名为first_project的django项目,还有使用pycharm方式在C:\Users\Administrator\django_project目录下创建了一个同名first_project的django项目。那么既然创建Django项目有两种方式(命令行方式和可视化Pycharm方式),自然而然也有两种方式来运行Django项目,分别为:

命令行方式
可视化Pycharm方式

(1)命令行方式
先进入django-env虚拟环境,然后进入到所要运行的Django项目的目录下(即manage.py所在文件目录下),执行以下命令:
谈谈Python之Django搭建企业级官网(第二篇)
这样可以在本地访问你的网站,默认端口号是 8000,而且访问IP地址为本机测试地址127.0.0.1,这样就可以在浏览器中通过 http://127.0.0.1:8000/ 来访问你的网站啦。如果想要修改端口号,那么在运行的时候可以指定端口号, python manage.py runserver 9000 这样就可以通过 9000 端口来访问啦。另外,这样运行的项目只能在本机上能访问。我们还可以设置让同一局域网下的电脑或手机访问你的网站,后面会讲解。
访问结果图如下:
谈谈Python之Django搭建企业级官网(第二篇)
到了这里,如果将访问的IP地址替换成随意的会咋样?当然是会报错,127.0.0.1地址是每一台电脑自己的本机测试地址,所以127.0.0.1才可以用于测试访问我们自己的项目,但是若替换成不存在的IP地址,自然会报错。如下图(最后一句是错误信息):
谈谈Python之Django搭建企业级官网(第二篇)
(2)可视化Pycharm方式
在测试Pycharm方式运行Django项目前先关闭CMD运行的Django项目,然后打开Pycharm,直接点击上方的绿色箭头按钮即可运行。
如下图:
谈谈Python之Django搭建企业级官网(第二篇)
需要注意的是,当使用pycharm来开发Django项目,要注意下方是不是同时运行两次或多次同一个项目。这样的结果导致测试时可能会有错误,因为当你想测试某个项目时,实际上网站运行的。当采用pycharm运行项目时要避免一个项目运行多次。在项目配置中,把“只用单一实例”那个选项勾选上,避出现问题。如下图所示:
谈谈Python之Django搭建企业级官网(第二篇)

介绍项目各类文件

我们可以看到不管哪种方式创建Django项目,都会有一个文件夹和manage.py(pycharm方式多了一些东西,不管它先)。

manage.py :以后和项目交互基本上都是基于这个文件。一般都是在终端输入 python manage.py [子命令] 。可以输入 python manage.py help 看下能做什么事情。除非你知道你自己在做什么,一般情况下不应该编辑这个文件。
settings.py :本项目的设置项,以后所有和项目相关的配置都是放在这个里面。
urls.py :这个文件是用来配置URL路由的。比如访问 http://127.0.0.1/news/ 是访问新闻列表页,这些东西就需要在这个文件中完成。
wsgi.py :项目与 WSGI 协议兼容的 web 服务器入口,部署的时候需要用到的,一般情况下也是不需要修改的。

改变端口号和同一局域网下其他电脑访问网站

1.改变端口号:
(1)在CMD终端,运行的时候加上一个端口号就可以了。命令为:“python manage.py runserver 9000”.
(2)在pycharm中,右上角->项目配置->host->port,改成你想要的端口号,重新运行。如下图:
谈谈Python之Django搭建企业级官网(第二篇)
2.让同局域网中的其他电脑访问本机的项目:
怎么同一局域网?最简单的就是手机开热点让你的电脑连接,那么就在同一局域网了。然后根据命令行方式还是pycharm方式选其一进行如下步骤:
(1)设置Django项目的host为0.0.0.0:
A.如果在CMD终端,使用命令:“python manage.py runserver 0.0.0.0:8000”
B.如果在pycharm,右上角->项目配置->host,改成“0.0.0.0”
(2)在“settings.py”文件中,配置“ALLOWED_HOSTS”
将本机的ip地址添加进去,示例代码如下:
“ALLOWRD_HOSTS = ['电脑本机的ip地址']” //注意电脑本机的ip地址是你的手机分配的地址,所以手机和电脑肯定在同一网段,即同一局域网。
运行成功后,同一局域网下的其他电脑或手机访问你的网站。 注意,如果失败了,可能还要关闭自己电脑的防火墙才行。

app的概念与创建

app概念

这里的app不是手机的App。app 是 django 项目的组成部分,“应用”的意思。一个 app 代表项目中的一个模块,所有 URL 请求的响应都是由 app 来处理。比如豆瓣,里面有图书,电影,音乐,同城等许许多多的模块,如果站在 django 的角度来看,图书,电影这些模块就是 app ,图书,电影这些 app 共同组成豆瓣这个项目。因此这里要有一个概念, django 项目由许多 app 组成,一个 app 可以被用到其他项目, django 也能拥有不同的 app 。现在不理解app没关系,后面的学习会逐渐明白app的作用。

app创建

创建应用(app),一个项目类似于是一个架子,但是真正起作用的还是 app 。在CMD终端进入到Pycharm方式创建的Django项目所在的路径,然后执行 以下命令创建一个app:

python manage.py startapp my_app

注意,不管是命令行方式还是Pycharm方式创建Django项目,要想为这个项目添加app,都必须通过在CMD下命令的方式创建app。
结果如下(创建成功后,在项目目录下添加了一个名字为my_app的app文件夹):
谈谈Python之Django搭建企业级官网(第二篇)