安装好django,配置模板,静态文件

  1. # 创建Django工程
  2. django-admin startproject 【工程名称】
  3.  
  4. mysite
  5. - mysite # 对整个程序进行配置
  6. - init
  7. - settings # 配置文件
  8. - url # URL对应关系
  9. - wsgi # 遵循WSIG规范,uwsgi + nginx
  10. - manage.py # 管理Django程序:
  11. - python manage.py
  12. - python manage.py startapp xx
  13. - python manage.py makemigrations
  14. - python manage.py migrate
  15.  
  16. # 运行Django功能
  17. python manage.py runserver 127.0.0.1:8001
  18.  
  19. chouti
  20. - chouti
  21. - 配置
  22. - 主站 app
  23. - 后台管理 app
  24.  
  25. # 创建app
  26. python manage.py startapp cmdb
  27. python manage.py startapp openstack
  28. python manage.py startapp xxoo....
  29.  
  30. app
  31. migrations 数据修改表结构
  32. admin Django为我们提供的后台管理
  33. apps 配置当前app
  34. models ORM,写指定的类 通过命令可以创建数据库结构
  35. tests 单元测试
  36. views 业务代码
  37.  
  38. 1、配置模板的路径
  39.  
  40. TEMPLATES = [
  41. {
  42. 'BACKEND': 'django.template.backends.django.DjangoTemplates',
  43. 'DIRS': [os.path.join(BASE_DIR, 'templates')],
  44. 'APP_DIRS': True,
  45. 'OPTIONS': {
  46. 'context_processors': [
  47. 'django.template.context_processors.debug',
  48. 'django.template.context_processors.request',
  49. 'django.contrib.auth.context_processors.auth',
  50. 'django.contrib.messages.context_processors.messages',
  51. ],
  52. },
  53. },
  54. ]
  55. 2、配置静态目录
  56. static
  57.  
  58. STATICFILES_DIRS = (
  59. os.path.join(BASE_DIR, 'static'),
  60. )
  61.  
  62. <link rel="stylesheet" href="/static/commons.css" />
  63.  
  64. 内容整理
  65. 1. 创建Django工程
  66. django-admin startproject 工程名
  67.  
  68. 2. 创建APP
  69. cd 工程名
  70. python manage.py startapp cmdb
  71.  
  72. 3、静态文件
  73. project.settings.py
  74.  
  75. STATICFILES_DIRS = (
  76. os.path.join(BASE_DIR, "static"),
  77. )
  78.  
  79. 4、模板路径
  80.  
  81. TEMPLATES中加 [os.path.join(BASE_DIR,'templates'),]
  82.  
  83. 5settings
  84.  
  85. middlerware
  86.  
  87. # 注释 csrf
  88.  
  89. 6、定义路由规则
  90. url.py
  91.  
  92. "login" --> 函数名
  93.  
  94. 7、定义视图函数
  95. appviews.py
  96.  
  97. def func(request):
  98. # request.method GET / POST
  99.  
  100. # http://127.0.0.1:8009/home?nid=123&name=alex
  101. # request.GET.get('',None) # 获取请求发来的而数据
  102.  
  103. # request.POST.get('',None)
  104.  
  105. # return HttpResponse("字符串")
  106. # return render(request, "HTML模板的路径")
  107. # return redirect('/只能填URL')
  108.  
  109. 8、模板渲染
  110. 特殊的模板语言
  111.  
  112. -- {{ 变量名 }}
  113.  
  114. def func(request):
  115. return render(request, "index.html", {'current_user': "alex"})
  116.  
  117. index.html
  118.  
  119. <html>
  120. ..
  121. <body>
  122. <div>{{current_user}}</div>
  123. </body>
  124.  
  125. </html>
  126.  
  127. ====> 最后生成的字符串
  128.  
  129. <html>
  130. ..
  131. <body>
  132. <div>alex</div>
  133. </body>
  134.  
  135. </html>
  136. -- For循环
  137. def func(request):
  138. return render(request, "index.html", {'current_user': "alex", 'user_list': ['alex','eric']})
  139.  
  140. index.html
  141.  
  142. <html>
  143. ..
  144. <body>
  145. <div>{{current_user}}</div>
  146.  
  147. <ul>
  148. {% for row in user_list %}
  149.  
  150. {% if row == "alex" %}
  151. <li>{{ row }}</li>
  152. {% endif %}
  153.  
  154. {% endfor %}
  155. </ul>
  156.  
  157. </body>
  158.  
  159. </html>
  160.  
  161. #####索引#################
  162. def func(request):
  163. return render(request, "index.html", {
  164. 'current_user': "alex",
  165. 'user_list': ['alex','eric'],
  166. 'user_dict': {'k1': 'v1', 'k2': 'v2'}})
  167.  
  168. index.html
  169.  
  170. <html>
  171. ..
  172. <body>
  173. <div>{{current_user}}</div>
  174.  
  175. <a> {{ user_list.1 }} </a>
  176. <a> {{ user_dict.k1 }} </a>
  177. <a> {{ user_dict.k2 }} </a>
  178.  
  179. </body>
  180.  
  181. </html>
  182.  
  183. ###### 条件
  184.  
  185. def func(request):
  186. return render(request, "index.html", {
  187. 'current_user': "alex",
  188. "age": 18,
  189. 'user_list': ['alex','eric'],
  190. 'user_dict': {'k1': 'v1', 'k2': 'v2'}})
  191.  
  192. index.html
  193.  
  194. <html>
  195. ..
  196. <body>
  197. <div>{{current_user}}</div>
  198.  
  199. <a> {{ user_list.1 }} </a>
  200. <a> {{ user_dict.k1 }} </a>
  201. <a> {{ user_dict.k2 }} </a>
  202.  
  203. {% if age %}
  204. <a>有年龄</a>
  205. {% if age > 16 %}
  206. <a>老男人</a>
  207. {% else %}
  208. <a>小鲜肉</a>
  209. {% endif %}
  210. {% else %}
  211. <a>无年龄</a>
  212. {% endif %}
  213. </body>
  214.  
  215. </html>

  

django 初始化 介绍 生命周期的更多相关文章

  1. Django的请求生命周期

    Django的请求生命周期 请求生命周期 请求生命周期是指当用户在浏览器上输入url到用户看到网页的这个时间段内,Django后台所发生的事情. 1.客户端发送Http请求 2 .服务器接收,根据请求 ...

  2. Django 框架 django的请求生命周期

    概述 首先我们知道HTTP请求及服务端响应中传输的所有数据都是字符串,同时http请求是无状态的,可以通过session和cookie来辅助. 浏览器通过ip和端口及路由方式访问服务端. 在Djang ...

  3. django请求的生命周期

    1. 概述 首先我们知道HTTP请求及服务端响应中传输的所有数据都是字符串. 在Django中,当我们访问一个的url时,会通过路由匹配进入相应的html网页中. Django的请求生命周期是指当用户 ...

  4. DRF框架(一)——restful接口规范、基于规范下使用原生django接口查询和增加、原生Django CBV请求生命周期源码分析、drf请求生命周期源码分析、请求模块request、渲染模块render

    DRF框架    全称:django-rest framework 知识点 1.接口:什么是接口.restful接口规范 2.CBV生命周期源码 - 基于restful规范下的CBV接口 3.请求组件 ...

  5. rest_framework框架下的Django声明和生命周期

    rest_framework框架下的Django声明和生命周期 Django声明周期(request) 客户端发起请求 请求经过wsgi wsgi: 是一个协议----web服务网关接口,即在web服 ...

  6. Servlet学习笔记(一)之Servlet原理、初始化、生命周期、结构体系

    Servlet是用java语言编写的应用到Web服务器端的扩展技术,与java对象的区别是,Servlet对象主要封装了对HTTP请求的处理,并且它的运行需要Servlet容器的支持(以下会介绍原因, ...

  7. Spring 基础知识(二)Spring的bean初始化与生命周期,以及注入

    Spring bean 初始化: 参考博文: https://www.cnblogs.com/luyanliang/p/5567164.html 1. 加载xml 文件. 扫描注解 ,形成bean定义 ...

  8. Django框架请求生命周期

    先看一张图吧! 1.请求生命周期 - wsgi, 他就是socket服务端,用于接收用户请求并将请求进行初次封装,然后将请求交给web框架(Flask.Django) - 中间件,帮助我们对请求进行校 ...

  9. Django的请求生命周期与中间件中的5中方法

    请求生命周期: 客户端——>WSGI——> 中间件——>路由匹配——>视图函数——>WSGI——>客户端 中间件: 在全局层明处理请求和响应的 form djang ...

随机推荐

  1. 2018最新APP Android UI设计规范

    设计稿尺寸:从目前市场主流设备尺寸来看,我们要用 1080 x 1920 PX  来做安卓设计稿尺寸. 以1080x1920px作为设计稿标准尺寸的原由: 从中间尺寸向上和向下适配的时候界面调整的幅度 ...

  2. HDU1166-敌兵布阵 (线段树)

    题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1166 敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)     ...

  3. jupyter notebook远程服务器终端连接

    如下图

  4. HDU - 5157 :Harry and magic string (回文树,求多少对不相交的回文串)

    Sample Input aca aaaa Sample Output 3 15 题意: 多组输入,每次给定字符串S(|S|<1e5),求多少对不相交的回文串. 思路:可以用回文树求出以每个位置 ...

  5. Spring mvc:配置不拦截指定的路径

    <!-- 访问拦截 --> <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**/ ...

  6. Codeforces 766C:Mahmoud and a Message(DP)

    题目链接:http://codeforces.com/problemset/problem/766/C 题意 有一个长度为n的字符串,第二行有26个数字,位置1~26对应为a~z的字母,数值表示该字母 ...

  7. 如何解决VMware 12 安装Ubuntu 16.04时无网络连接问题

    刚安装玩Ubuntu,打开后上网没有网络连接 ,点击右上角的数据连接,显示已经启动联网,但是用火狐还是无法上网: 解决方法如下: 先查看虚拟机的网络适配器:点击虚拟机左上角的编辑,里面有个网络适配器 ...

  8. java实现各种排序算法

    java实现各种排序算法 import java.util.Arrays; public class SomeSort { public static void main(String[] args) ...

  9. Python 面向对象(创建类和对象,面向对象的三大特性是指:封装、继承和多态,多态性)

    概念:                                                                                                 ...

  10. 深入学习Motan系列(二)——服务发布

    闯关经验: 袋鼠走过了第一关,顺利搭建出了Demo,信心爆棚.不过之后,心想怎么去研究这个框架呢.查了一下,官方文档,好像没什么东西可以研究啊.后来,又搜了搜博客,因为这是微博的框架嘛,所以搜索时用百 ...