随着Python应用越来越广泛,学习Python相关知识越来越多的人选择。最新研究,Python已成为美国top高校最受欢迎的语言,同时国内用Python开发的网站越来越多,比较知名的网站如知乎、豆瓣、果壳等,再加上之前自己数据分析和网络爬虫一直使用的是Python,对它比较熟悉,所以这系列文章将讲述Python搭建网站,后面会结合数据分析可视化进行深入研究。
Python有许多款不同的Web框架,包括:Pylons、Tornado、Django、Bottle、Flask等,而Django是最有代表性的一个,也可认为是Python框架中最好的、文档最完善、市场占有率最高的框架,许多成功的网站和APP都基于Django技术的。
下面从入门开始讲解,同时Django相关资料也比较多,写得比我好的很多,而我这系列主要结合实例和自己的体验进行讲解,后面数据分析相关知识的加入也是这篇文章的升华,希望对你有所帮助,如果文章中存在错误或不足之处,还请海涵。
Django是一个开放源代码的Web应用框架,由Python写成,Django采用了MVC的软件设计模式,即模型M,视图V和控制器C。
百度百科-MVC
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。常见框架:Struts、Spring等。
Django-MTV
这部分内容直接引用博客园feixuelove大神的叙述,讲解得真的很好,强烈推荐阅读。
简约而不简单的Django新手图文教程 - feixuelove
MVC其实就是把不同类型的文件放到不同的目录下的一种方法,然后取了个高大上的名字。当然,它带来的好处有很多,比如前后端分离,松耦合等等。
1.模型(model):定义数据库相关的内容,一般放在models.py文件中。
2.视图(view):定义HTML等静态网页文件相关,那些html、css、js等前端的东西。
3.控制器(controller):定义业务逻辑相关,就是你的主要代码。
MTV: 有些WEB框架觉得MVC的字面意思很别扭,就给它改了一下。view不再是HTML相关,而是主业务逻辑了,相当于控制器。html被放在Templates中,称作模板,于是MVC就变成了MTV。这其实就是一个文字游戏,和MVC本质上是一样的,换了个名字和叫法而已,换汤不换药。
目录分开,就必须有机制将他们在内里进行耦合。在Django中,urls、orm、static、settings等起着重要的作用。一个典型的业务流程是如下图所示:
PS:这部分内容本来想自己写的,但是feixuelove大神写得更好,同时自己体会不是很深,所以直接引用了。相信自己做得多以后,能用自己的理解进行总结,如果该部分侵权,立刻删除。
PIP指令
easy_insall的作用和perl中的cpan,ruby中的gem类似,提供了在线一键安装模块的傻瓜方便方式,而pip是easy_install的改进版,提供更好的提示信息,删除package等功能。常见的具体用法如下:
easy_install的用法:
1) 安装一个包
$ easy_install
$ easy_install "=="
2) 升级一个包
$ easy_install -U ">="
pip的用法
1) 安装一个包
$ pip install
$ pip install ==
2) 升级一个包 (如果不提供version号,升级到最新版本)
$ pip install --upgrade >=
3)删除一个包
$ pip uninstall
也在官网下载,下载地址:https://www.djangoproject.com/
安装Django
通过cd去到Python的Scripts文件夹下,然后调用pip指定进行安装。
pip install django
运行结果如下图所示,它在CMD环境下自动下载安装。安装成功后,在Scripts目录下存在django-admin.py的文件。
第一步 创建项目HelloWorld
通过调用django-admin.py文件中的startproject命令进行安装。
django-admin.py startproject HelloWorld
python manage.py runserver 9090
其中9090为端口号,如Java网站的8080端口等。
|-- HelloWorld
| |-- __init__.py
| |-- settings.py
| |-- urls.py
| `-- wsgi.py
|
`-- db.sqlite3
`-- manage.py
说明如下:#-*- coding:utf-8 -*-
from django.http import HttpResponse
def hello(request):
return HttpResponse("Hello world, My name is Eastmount!")
自定义hello方法,参数request固定的,用于返回HttpResponse。第五步 配置URL
修改urls.py文件内容,将访问的内容改为views.py文件中的hello函数。
如下所示:
"""HelloWorld URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/1.11/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: url(r'^$', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.conf.urls import url, include
2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))
"""
from django.conf.urls import url
from views import *
urlpatterns = [
url(r'^$', hello),
]
代码需要导入views文件内容,才能引用hello方法。views.py视图文件在编译后会产生对应的views.pyc文件。
然后启动Django服务器,在浏览器中访问即可,如下图所示:
推荐资料:
简约而不简单的Django新手图文教程 - feixuelove(强烈推荐)
Django创建第一个项目 - Runoob
https://www.djangoproject.com/
Python Django入门教程 - 百度文库
希望文章对你有所帮助,如果文章存在错误或不足之处,还请海涵。
加油,秀璋。绿妖,晚安!
(By:Eastmount 2017-06-27 晚上12点 http://blog.csdn.net/eastmount/ )