都说Djnago框架重,那就让哥用15行代码写个django web程序_第1页
都说Djnago框架重,那就让哥用15行代码写个django web程序_第2页
都说Djnago框架重,那就让哥用15行代码写个django web程序_第3页
都说Djnago框架重,那就让哥用15行代码写个django web程序_第4页
都说Djnago框架重,那就让哥用15行代码写个django web程序_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、都说Djnago框架重,那就让哥用15行代码写个django web程序! 2016-06-14 14:41:09标签: django 很多初学django的小伙伴都会了解到,django是个大而全的网络框架,本身集成了ORM、模型绑定、模板引擎、缓存、Session等诸多功能。要学这么多内容,要学到猴年马月啊!?不过世界真是奇妙,现在咱们就在猴年马月里!2016年是猴年,按农历计算,6月5日至7月3日是庚午月,正好是“猴年”里的“马月”。那么问题来了:你想不想在猴年马月里学会django呢?下面我们尝试一下,用15行代码结合django写个web程序,来一次django的清爽体验。djang

2、o复杂吗当然,复杂的很呢!如果你是跟着官方文档自学过,就会知道,那里有个初级项目是投票网站,分了6部分才讲完。而且如果你是个完完全全网络编程的初学者,估计过了第3篇才看出个这个项目的样子。而且在学习中,还需要了解django最重要的几方面内容:比如目录结构:运行django-admin startproject sitename后,你会看见sitename文件夹里的四个文件:_init_.pysettings.pyurls.pywsgi.py再运行python manage.py startapp app01后,还可以在app01这个app的目录里看出来所谓的MTV架构。_init_.pyad

3、min.pymodels.py # M,定义各种数据类templates  # T,这是个目录,放html模板的,当然你可以建到项目路径下 views.py     # V,根据路由编写的响应各种请求的函数app.py.如果你用过pycharm,新建工程和app后的代码结构如图所示,帅哥做的很好,直接用了。 当然,这些只是个初级认识,后面还要学习urls处理各种路由,然后怎么定义数据库,怎么前后端传数据,手续很复杂啊!但是,你看看人家flask,bottle,分分钟

4、就弄出个hello world啊!立马就知道大致的框架用法了,django是不是也能这么玩呢?清爽版本巧了,国外早有django爱好者尝试过django的简单玩法,而且还专门写了本书。今天就抛砖引玉,大家一起来玩玩!talk is simple, show me the code!# -*- coding:utf-8 -*-# a mini Django projectimport sysfrom django.conf import settingsfrom django.

5、conf.urls import urlfrom django.http import HttpResponsefrom django.core.management import execute_from_command_linesettings.configure(        DEBUG = True, # 调试状态      &

6、#160; SECRET_KEY = 'iamasecretkeyhahahaha', # 默认的session需要的key,也为了CSRF        ROOT_URLCONF = sys.modules_name_, # url根目录的配置    )def home(request):    return 

7、HttpResponse('a mini django website')  # 主页urlpatterns =         url(r'$', home), # 元组类型,默认请求发送到home函数    # 启动程序if _name_ = "_main_": 

8、   execute_from_command_line(sys.argv)新建个文件,比如miniWeb.py,写上这些代码,然后在当前目录下,命令行运行:>python miniWeb.py runserver看到这些说明运行成功!System check identified no issues (0 silenced).June 13, 2016 - 12:23:51Django version 1.9.7, using&

9、#160;settings NoneStarting development server at :8000/Quit the server with CTRL-BREAK.然后用浏览器打开http:/localhost:8000/, wow, look at that! a mini django website应该已经出现在你的浏览器里!是不是太简单了? 哈哈! 要的就是这种清爽感觉!爽不爽?不算注释的话,也就15行吧。简单解释一下:这些代码其实就是把一个dja

10、ngo标配的settings,view,url,manage几个文件进行了简化与整合,目的在于用最小的代码向你展示django的网页响应过程。 实际也就是把django中的请求生命周期放在一个文件中展示了(我们这里还没有涉及到model部分)。 流程如下:1._name_这行在学习python的时候每天都会用到,就是一个入口函数,在我们这里就是一个命令行的入口,通过命令行传入runserver参数,然后django内部会自己处理;2.然后我们打开http:/localhost:8000/,这时候访问的是网站的根目录url,我们在urlpatterns里面,为这个指明了要跳转的函数,也

11、就是home;3.在home函数中,会通过Http响应,将页面内容返回给网页前端;4.于是,我们看到了页面内容a mini django website.升级点的清爽版本只有一行文字啊,这网站太low了!咱们给他加点盐,弄个html模板好不好?还是直接看代码,关键地方我加了注释:# -*- coding:utf-8 -*-# a mini Django projectimport os  # 添加模板路径使用import sys# 保存当前路径BASE_PATH=&

12、#160; os.path.dirname(_file_)from django.conf import settingsfrom django.conf.urls import url# from django.http import HttpResponse # 不需要了from django.shortcuts import render # 渲染模板,让html中显示后台自定义内容from djan

13、go.core.management import execute_from_command_linesettings.configure(        DEBUG = True, # 调试状态        SECRET_KEY = 'iamasecretkeyhahahaha', # 默认的session需要的key

14、,也为了CSRF        ROOT_URLCONF = sys.modules_name_, # url根目录的配置        TEMPLATE_DIRS = (                os.path.

15、join(BASE_PATH, 'templates'), # 告诉django在当前目录下找templates文件夹,这里还是元组,记得逗号!            ), # 这里记得有逗号,因为setting的配置也是元组        INSTALLED_APPS = ( # 默认的认证

16、和内容的app,需要添加避免传数据的错误            'django.contrib.auth',              'django.contrib.contenttypes',        ), 

17、   )def home(request):    #return HttpResponse('a mini django website')  # 主页    data = 'name': 'alex', 'age':18 # 通过模板语言传到页面的数据  

18、60; print data    return render(request, 'index.html', 'data': data)urlpatterns =         url(r'$', home, name='home'), # 元组类型,默认请求发送到home函数 &#

19、160;  # 启动程序if _name_ = "_main_":    execute_from_command_line(sys.argv)比刚才多了些模板文件的内容,这时候我们还需要在当前目录下新建一个文件夹,名字就是templates,然后在里面新建一个html文件,可以像我这个一样,<!DOCTYPE html><html><head><meta charset="utf-8">

20、<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><title>mini django</title><meta name="description" content=""><meta name="keywords" content=""><link href

21、="" rel="stylesheet"></head><body><h1>显示一下data:</h1>     data     <h2>分开输出:</h2>    <li>name:</li>    <li>age:data.age&

22、lt;/li></body></html>注意里面用到了一点模板语言,用表示的,其实就是个上面render函数最后的参数替换而已。也就是这句:return render(request, 'index.html', 'data': data)注意这里,为了和django默认新建工程一致,我把当前目录名和py文件名字都改成一样的了:miniDjango.命令行运行: >python miniDjango.py runserver再次打开浏览器,访问:http:/localhost:8000/, wow, look at that!显示一下data:'age': 18, 'name': 'alex'分开输出:name:alexage:18是不是高大上了很多!甚至,我们可以直接用Bootstrap的首先保存这个网页的源码为bt.html文件,放到templates文件夹。然后添加url和view函数: 如下所示:def bt(request):    data = 'title': 'a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论