Python这家伙,除了数据分析、桌面系统应用开发外,还可以开发Web系统。不知是惊喜,还是惊吓,Python Web开发框架比其他语言要多很多。
1
其中用的最多Python Web框架有Django、Falsk、Tornado,这次说下Django。
一提到框架,不得不提下MVC模式,这个模式现在是普遍性的了。那Django是不是MVC模式?--是又不是,它用的是MVT模式,而实际上与MVC并无多大差异。
M( Model):跟MVC中的M一样,负责和数据库交互,进行数据处理。
V( View): 跟MVC中的C一样,接收请求,进行业务处理。
T( Template) :跟MVC中的V一样,负责表现。

2
清楚模式之后,按这个步骤,咱来开发一个Web应用程序。
在Windows下打开【命令行窗口】,运行pip3 install Django,获取Django开发包和运行环境。下载并安装完成后,可以通过:django-admin --version命令确定是否安装成功。

打开eclipse(已安装了PyDev插件和JDK),点击菜单栏【Window】-【Preference】打开配置窗口。目标定位【PyDev】-【Interpreters】-【Python Interpreter】,点击【Choose from list】按钮,导入相关开发包。

3
一切都准备好,咱来新建工程。菜单栏【File】-【New】-【Other…】,打开【PyDev】-【PyDev Django Project】。

输入工程名:webapp,点击【Next】【Next】。

数据库用默认的sqlite就好,【Finish】。一键下去,工程建立。生成的工程文件介绍,_init_.py将目录当成是一个package,settings.py设置或配置相关参数,如数据库配置等,urls文件列表,wsgi.py工程部署文件。manage.py工程管理:新建、运行等。

4
从上面介绍可知,新建工程,只是建立了一个运行环境。接下来,新建一个项目(产品)。右键工程名【webapp】,选择【Django】-【Create application(manage.py startapp)】。

输入项目名称:helloweb。右键工程名,【Refresh】一下,显示helloweb文件内容,项目下的就没什么好介绍的,看文件名就可以一目了然。有注意到MVT中,缺少T(template)吧。别着急,下面会提到。

5
打开settings.py文件,在INSTALLED_APPS的最后,加上项目名称:‘helloweb’,指定要运行的项目就是这个。

往下滚懂,看到TEMPLATES时停止。从名字就可以看出,这里就是配置模板用的,其中有个DIRS正空着,等着你去配置。内容是:'DIRS': [os.path.join(BASE_DIR,'helloweb
/templates')]。不知你感觉到没,项目里都没这个文件夹,这样配置肯定有问题。是的,赶紧右键helloweb项目【New】-【PyDev Package】新建一个,输入内容就不用我说了吧?--发现templates跑外面去了,直接拖到helloweb里就好了。如果不拖进去的话,就改成:'DIRS': [os.path.join(BASE_DIR,'templates')]。

6
终于全部配置好了,可以进入开发了。当然,你可以选择先哼一小曲。在templates包下,新建index.html文件,在
中间输入:Hello Web!。当然,可以改成任何你喜欢的内容,甚至表白。
打开views.py,在这里配置返回指定的index.html文件。
def index(request):
return render(request, 'index.html')

至于models.py操作数据库,这次没用到,不用去理会它。打开urls.py文件,配置views 访问路径,加上内容:path('index/', views.index),

7
一切都准备妥妥的,运行看看。 右键webapp工程,【Run As】- 【PyDev:Django】。

控制台有打印出来访问的地址,可以拷贝出来。当然,你喜欢输入,也没人拦你。你开心就好。

打开浏览器,粘贴地址,并在后面输入index.html。哈哈,结果出来了。我的情在等待,我的情在等待….
