zoukankan      html  css  js  c++  java
  • django 初始化 介绍 生命周期

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

    	# 创建Django工程
    	django-admin startproject 【工程名称】
    	
    		mysite
    			- mysite        # 对整个程序进行配置
    				- init
    				- settings  # 配置文件
    				- url       # URL对应关系
    				- wsgi      # 遵循WSIG规范,uwsgi + nginx
    			- manage.py     # 管理Django程序:
    								- python manage.py 
    								- python manage.py startapp xx
    								- python manage.py makemigrations
    								- python manage.py migrate
    		
    		
    		
    	# 运行Django功能
    	python manage.py runserver 127.0.0.1:8001
    	
    	
    	chouti
    		- chouti
    			- 配置
    		- 主站 app
    		- 后台管理 app
    	
    	
    	
    	# 创建app
    	python manage.py startapp cmdb
    	python manage.py startapp openstack
    	python manage.py startapp xxoo....
    	
    	
    	app:
    		migrations     数据修改表结构
    		admin          Django为我们提供的后台管理
    		apps           配置当前app
    		models         ORM,写指定的类  通过命令可以创建数据库结构
    		tests          单元测试
    		views          业务代码
    	
    	
    	
    	1、配置模板的路径
    	
    		TEMPLATES = [
    				{
    					'BACKEND': 'django.template.backends.django.DjangoTemplates',
    					'DIRS': [os.path.join(BASE_DIR, 'templates')],
    					'APP_DIRS': True,
    					'OPTIONS': {
    						'context_processors': [
    							'django.template.context_processors.debug',
    							'django.template.context_processors.request',
    							'django.contrib.auth.context_processors.auth',
    							'django.contrib.messages.context_processors.messages',
    						],
    					},
    				},
    			]
    	2、配置静态目录
    		static
    	
    		STATICFILES_DIRS = (
    			os.path.join(BASE_DIR, 'static'),
    		)
    
    		
    		<link rel="stylesheet" href="/static/commons.css" />
    	
    
    内容整理
    	1. 创建Django工程
    			django-admin startproject 工程名
    
    	2. 创建APP
    		cd 工程名
    		python manage.py startapp cmdb
    
    	3、静态文件
    		project.settings.py
    		
    		STATICFILES_DIRS = (
    			os.path.join(BASE_DIR, "static"),
    		)
    	
    	4、模板路径
    	
    		TEMPLATES中加    [os.path.join(BASE_DIR,'templates'),]
    		
    	5、settings中
    		
    		middlerware
    		
    			# 注释 csrf
    			
    			
    	6、定义路由规则
    		url.py
    		
    			"login" --> 函数名
    			
    	7、定义视图函数
    		app下views.py
    			
    			def func(request):
    				# request.method   GET / POST
    				
    				# http://127.0.0.1:8009/home?nid=123&name=alex
    				# request.GET.get('',None)   # 获取请求发来的而数据
    				
    				# request.POST.get('',None)
    				
    				
    				# return HttpResponse("字符串")
    				# return render(request, "HTML模板的路径")
    				# return redirect('/只能填URL')
    				
    	8、模板渲染
    		特殊的模板语言
    		
    			-- {{ 变量名 }}
    		
    				def func(request):
    					return render(request, "index.html", {'current_user': "alex"})
    		
    					
    				index.html
    				
    				<html>
    				..
    					<body>
    						<div>{{current_user}}</div>
    					</body>
    				
    				</html>
    				
    				====> 最后生成的字符串
    				
    				<html>
    				..
    					<body>
    						<div>alex</div>
    					</body>
    				
    				</html>
    			-- For循环
    				def func(request):
    					return render(request, "index.html", {'current_user': "alex", 'user_list': ['alex','eric']})
    		
    					
    				index.html
    				
    				<html>
    				..
    					<body>
    						<div>{{current_user}}</div>
    						
    						<ul>
    							{% for row in user_list %}
    							
    								{% if row == "alex" %}
    									<li>{{ row }}</li>
    								{% endif %}
    								
    							{% endfor %}
    						</ul>
    						
    					</body>
    				
    				</html>
    				
    			#####索引################# 
    				def func(request):
    					return render(request, "index.html", {
    								'current_user': "alex", 
    								'user_list': ['alex','eric'], 
    								'user_dict': {'k1': 'v1', 'k2': 'v2'}})
    		
    					
    				index.html
    				
    				<html>
    				..
    					<body>
    						<div>{{current_user}}</div>
    						
    						<a> {{ user_list.1 }} </a>
    						<a> {{ user_dict.k1 }} </a>
    						<a> {{ user_dict.k2 }} </a>
    						
    					</body>
    				
    				</html>
    			
    			###### 条件
    			
    				def func(request):
    					return render(request, "index.html", {
    								'current_user': "alex", 
    								"age": 18,
    								'user_list': ['alex','eric'], 
    								'user_dict': {'k1': 'v1', 'k2': 'v2'}})
    		
    					
    				index.html
    				
    				<html>
    				..
    					<body>
    						<div>{{current_user}}</div>
    						
    						<a> {{ user_list.1 }} </a>
    						<a> {{ user_dict.k1 }} </a>
    						<a> {{ user_dict.k2 }} </a>
    						
    						{% if age %}
    							<a>有年龄</a>
    							{% if age > 16 %}
    								<a>老男人</a>
    							{% else %}
    								<a>小鲜肉</a>
    							{% endif %}
    						{% else %}
    							<a>无年龄</a>
    						{% endif %}
    					</body>
    				
    				</html>
    

      

  • 相关阅读:
    反射,Expression Tree,IL Emit 属性操作对比
    vue2.0 创建项目
    vue-cli3.0 Typescript 项目集成环信WebIM 群组聊天
    vue-property-decorator vue typescript写法
    TypeScript中是使用强类型函数作为参数
    应用监控与管理Actuator
    ES数据库下载安装
    删除SDE用户报ORA-00604 ORA-21700
    ArcGIS中的WKID
    改变您的HTTP服务器的缺省banner
  • 原文地址:https://www.cnblogs.com/alex-hrg/p/9641167.html
Copyright © 2011-2022 走看看