admin管理员组文章数量:1794759
[python网站开发] 一.Django入门知识及创建第一个网站
随着Python应用越来越广泛,学习Python相关知识越来越多的人选择。最新研究,Python已成为美国top高校最受欢迎的语言,同时国内用Python开发的网站越来越多,比较知名的网站如知乎、豆瓣、果壳等,再加上之前自己数据分析和网络爬虫一直使用的是Python,对它比较熟悉,所以这系列文章将讲述Python搭建网站,后面会结合数据分析可视化进行深入研究。
Python有许多款不同的Web框架,包括:Pylons、Tornado、Django、Bottle、Flask等,而Django是最有代表性的一个,也可认为是Python框架中最好的、文档最完善、市场占有率最高的框架,许多成功的网站和APP都基于Django技术的。
下面从入门开始讲解,同时Django相关资料也比较多,写得比我好的很多,而我这系列主要结合实例和自己的体验进行讲解,后面数据分析相关知识的加入也是这篇文章的升华,希望对你有所帮助,如果文章中存在错误或不足之处,还请海涵。
一. Django入门知识Django是一个开放源代码的Web应用框架,由Python写成,Django采用了MVC的软件设计模式,即模型M,视图V和控制器C。
百度百科-MVCMVC全名是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大神写得更好,同时自己体会不是很深,所以直接引用了。相信自己做得多以后,能用自己的理解进行总结,如果该部分侵权,立刻删除。
二. 安装及配置DjangoPIP指令easy_insall的作用和perl中的cpan,ruby中的gem类似,提供了在线一键安装模块的傻瓜方便方式,而pip是easy_install的改进版,提供更好的提示信,删除package等功能。常见的具体用法如下:
easy_install的用法: 1) 安装一个包 $ easy_install <package_name> $ easy_install "<package_name>==<version>" 2) 升级一个包 $ easy_install -U "<package_name>>=<version>" pip的用法 1) 安装一个包 $ pip install <package_name> $ pip install <package_name>==<version> 2) 升级一个包 (如果不提供version号,升级到最新版本) $ pip install --upgrade <package_name>>=<version> 3)删除一个包 $ pip uninstall <package_name> 也在官网下载,下载地址:www.djangoproject/作者安装的版本:(pip list指令查看) Python 2.7.8 Django 1.11.2安装Django通过cd去到Python的Scripts文件夹下,然后调用pip指定进行安装。
pip install django 运行结果如下图所示,它在CMD环境下自动下载安装。安装成功后,在Scripts目录下存在django-admin.py的文件。
在Scripts文件夹下输入: django-admin.py,查看命令的介绍。 下面部分讲解如何创建一个Python网站项目。 三. 创建第一个项目及详解第一步 创建项目HelloWorld通过调用django-admin.py文件中的startproject命令进行安装。
django-admin.py startproject HelloWorld 然后在Scripts文件夹下生成项目HelloWorld,如下图所示。 CMD中cd命令去到文件夹,dir命令显示目录下文件,tree命令显示路径。 第二步 runserver启动项目服务器接下来进入HelloWorld项目,并输入如下命令,启动项目服务器。 python manage.py runserver 9090 其中9090为端口号,如Java网站的8080端口等。 然后通过浏览器方位127.0.0.1:9090,显示It worked表示配置成功。 第三步 介绍项目的各个文件及作用参考RUNOOB网站对Django几个文件的进行介绍,目录如下: |-- HelloWorld | |-- __init__.py | |-- settings.py | |-- urls.py | `-- wsgi.py | `-- db.sqlite3 `-- manage.py 说明如下:- HelloWorld: 项目的容器。
- manage.py: Django管理主程序。一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
- __init__.py: 空文件。告诉Python该目录是一个Python包。
- settings.py: 主配置文件。该Django项目的设置/配置。
- urls.py: URL路由文件。Django项目的URL声明,一份由Django驱动的网站"目录"。
- wsgi.py: 网络通信接口。一个WSGI兼容的Web服务器的入口,以便运行你的项目。
第五步 配置URL修改urls.py文件内容,将访问的内容改为views.py文件中的hello函数。如下所示:
"""HelloWorld URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: docs.djangoproject/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 www.djangoproject/ Python Django入门教程 - 百度文库
希望文章对你有所帮助,如果文章存在错误或不足之处,还请海涵。 加油,秀璋。绿妖,晚安!(By:Eastmount 2017-06-27 晚上12点 blog.csdn/eastmount/ )
版权声明:本文标题:[python网站开发] 一.Django入门知识及创建第一个网站 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686984949a125511.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论