《最简单的Python-Django入门教程.docx》由会员分享,可在线阅读,更多相关《最简单的Python-Django入门教程.docx(10页珍藏版)》请在第一文库网上搜索。
1、最简单的PythonDjango入门教程Djang。的学习教程也是分门别类,形式不一。或是较为体系的官方文档,或者风格自由的博客文档,或者偏向实例的解析文档。即使官方文档,章节较多,文字阐述累赘,有时候我们只是关注某个功能用法而已,而自由博文最大的问题是互相抄袭,结构混乱,涵盖面小且错误较为明显。由此,本文结合学习期间资料梳理和项目开发经验,整理出一套较为常用实用的文章。适用于新手入门,无论C#,C,java,Python,R等具有任可编程语言基础均可;想快速了解Django并可以快速开发上手者。适用于作为资料查询,技术点参考。几个基本概念前置条件:假设读者基本Python语言基础,或者具备某
2、种编程语言的基础。你还熟悉web开发环境,懂些css,js,db等。Django是什么?Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模式,即模型M,视图V和控制器Q它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手DjangoReinhardt来命名的。Django的主要目标是使得开发复杂的、数据库驱动的网站变得简单。Django注重组件的重用性和可插拔性,敏捷开发和DRY法则(DontRepeatYourse1f1在Django中Python被普遍使用
3、,甚至包括配置文件和数据模型。维基百科Django是T开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器U它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布.这套框架是以比利时的吉普赛爵士吉他手DjangoReinhardt来命名的.百度百科MTV开发模式?Django是一个基于MVC构造的框架.但是在Django中,控制器接受用户输入的部分由框架自行处理,所以Django里更关注的是模型(Mode1模板(TemP1ate)和视图(VieWS),称为MTV模
4、式。它们各自的职责如下:模型(Mode1),即数据存取层处理与数据相关的所有事务:如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。视图(View),即表现层处理与表现相关的决定:如何在页面或其他类型文档中进行显示。模板(TemP1ate),即业务逻辑层存取模型及调取恰当模板的相关逻辑。模型与模板的桥梁。Django的架构?让我们一览Django全貌:ur1s.py网址入口,关联到对应的views.py中的一个函数(或者generic类),访问网址就对应一个函数。views.py处理用户发出的请求,从UHS.py中对应过来,通过演染temp1ates中的网页可以将显示内容,比如登陆后
5、的用户名,用户请求的数据,输出到网页。mode1s.py与数据库操作相关,存入或读取数据时用到这个,当然用不到数据库的时候你可以不使用。forms.py表单,用户在浏览器上输入数据提交,对数据的验证工作以及输入框的生成等工作,当然你也可以不使用。temp1ates文件夹views.py中的函数渲染temp1ates中的Htm1模板,得到动态内容的网页,当然可以用缓存来提高速度。admin.py后台,可以用很少量的代码就拥有一个强大的后台。settings.pyDjango的设置,配置文件,比如DEBUG的开关,静态文件的位置等。上面的Py文件不理解也没有关系,后面会详细介绍。一图胜千言,架构全
6、貌工作机制如下所示:StaticDjango大家都在使用的商业网站Sohu邮箱、果壳网、豆瓣、爱调研、易度在线云办公、优容网、快玩游戏、九九房、贷帮网、趣奇网、知乎、时尚时空、游嗜板:YxPadWebPy、DNSPod国际版、下厨房、贝太厨房、Wopus问答、咕咚网、扇贝网、站长工具、易度文档管理系统、个人租房、在线文档查看-易度云查看、FIFA310足球数据分析专家、搜狐随身看等等。Django配置准备前置条件:pip、pythonssub1ime,anaconda环境已经安装。后置条件:检直是否安装成功:XXX数据统计分析(决策)平台系统环境:WIN1O64bit开发环境:sub1ime+
7、Anaconda数据库:Mysq15.6.17语言:python3.5框架:django1.11+Bootstrap可视化工具:Highchart1Echarts1pIotIy1Bokeh(采用Echarts)Django基础配置安装1创建项目,项目决策分析:xmjc_ana1ysis在E盘根目录下创建xmjc.ana1ysis:效果:settings.py项目的设置文件ur1s.py总的ur1s配置文件wsgi.py部署服务器文件_init_.pypython包的目录结构必须的,与调用有关.2创建APP名为ana1ysis效果:3新定义的app力口至IJsettings.py中的INSTA1
8、1_APPS中31#App1icationdefinition3233INSTA11ED_APPS=34django.contrib.admin,django.contrib.auth,django.contrib.contenttypes1django.contrib.sessions,J,django.contrib.messages,J,django.contrib.staticfi1es,44041,ana1ysis,42434视图和网址创建第一个页面(1)我们在ana1ysis这个目录中把VieWS.py打开,修改其中的源代码:第一个页面author:白宁超site:http:/ww
9、w.CbaiboyScoding:utf-8frodjango.shortcutsimportrenderfrodjango.httpimportHttpResponsedefide(request):returnHttPReSpOnSe(U”欢迎进入第一个DjangO页面!)第一行是声明编码为utf-8,因为我们在代码中用到了中文,如果不声明就报错.第二行引入HttpResponse,它是用来向网页返回内容的,就像Python中的print一样,只不过HttpResponse是把内容显示到网页上。我们定义了一个index()函数,第f参数必须是request,与网页发来的请求有关,reque
10、st变量里面包含get或post的内容.(2)我们打开Xmjjana1ySiSxmjjana1ysisUrIS.py这个文件,修改其中的代码:frodjago.conf.ur1simportur1frodjango.contribimportadminfromana1ysisimportviewsasana1ysis_viewsUr1patterns=ur1(r,Aadmin/,admin.site.ur1s),ur1(rAindex/$,ana1ysis-views.indejname,index*),#首页(3)本地运行服务器测试注意在项目根目录XmjJanaIySiS运行结果如下:htt
11、p127.0.0.1z80index+Q127.0.0.1:8000/index/自最常访问.火孤官方站点新手上路常用网址血京东商城金T或多个已安领机函件未通过验证,现已被禁用.欢迎进入第fDjango页面!(4)页面传参数,显示欢迎admin字样修改view.py源码:site:http:/baiboyII#coding:utf-8django.shortcutsimport-renderdjango.httpHttpResponsedefindex(requ2st):namerequest.GETnameHttPReSPOnSe(U欢迎;name+j进入第一个DjangO页面!,)通过ge
12、t方式接受页面参数,当然也可以采用post,结合form实现。5配置简单数据库操作,默认sq1ite,咱们指定mysq1数据库(1)在Xmjjana1ySiSsettings.py文件下修改如下:配置MySq1数据摩2317年7月26日16:40:38白宁超DATABASES=,defau1t:ENGINE,:,django.db.backends.m,sq1,iNAME:test,USER:test,PASSWORD:test123j,HOST,:,Ioca1hosf,PORT,:3306,3xmjc_ana1ysis/_init_.py下修改:(2)在ana1ysis/mode1s.py下
13、设计数据库表,采用ORM方式frodjango.dbimportmode1s9Createyourmode1shere.c1assUser(HOde1s-Mode1):username=mode1s.CharFie1d(用户名,max-1ength=30)userpass=mode1s.CharFie1d(密码,inax_1ength=30)useremai1=InOde1S.Emai1Fie1d(邮箱,eaxjength=3)usertype=mode1s.CharFie1d(用户类型,max_1ength=30)def_str_(se1f):returnse1f.username(3)在a
14、na1ysis/admin.py中定义显示数据(4)创建更改的文件,将生成的Py文件应用到数据库E:xmjc-ana1ysispythonmanage,pymakemigrationsIigrationsforana1ysis:ana1ysismigrations0001_initia1.py-Createmode1UserE:xmjc-ana1ysispythonmanage,pymigrateSystemcheckidentifiedsomeissues:Tarnings:?:(ysq1.f002)MySQ1StrictModeisnotsetfordatabaseconnection,d
15、efau1t1HINT:MySQ1,sStrictModefixesmanydataintegrityprob1emsinMySQ1,such,byesca1atingwarningsintoerrors.Itisstrong1yrecommendedyouactivateit.Sfen1.11refdatabasesmysq1-sq1-modeOperationstoperform:即PIya11migrations:admin,ana1ysis,auth,contenttypes,sessionsRunningmigrations:Nomigrationstoapp1y.E:xmjc_ana1ysis.(5)创建超级管理员:用户名,test;密码密码:test123456(6)登录后台查看信息运彳亍服务器:pythonmanage.pyrunserverDjangoadministrationUs