zoukankan      html  css  js  c++  java
  • django学习笔记(一)

    Django	
    	 安装 pip3 install django	
    	
    	 安装文件位置 C:Python35Scripts
    	
    	#在指定目录下创建 跳到指定目录 创建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" />
    		
    	  提交表单报错:RuntimeError: You called this URL via POST, 
          but the URL doesn’t end in a slash and you have APPEND_SLASH set.
    
          将from的action地址改为/结尾的就可以了
          或者
         修改settings:APPEND_SLASH=False
    	
    	
    	
    
    内容整理
    	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、模板路径
    	
    		DIRS ==>    [os.path.join(BASE_DIR,'templates'),]
    		
    	5、settings中
    		
    		middlerware
    		
    			# 注释 csrf
    			
    			
    	6、定义路由规则
    		url.py
    		
    			"login" --> 函数名
    			
    	7、定义视图函数
    		app下views.py
    			
    			def func(request):   request参数必带,包含表单提交的所有数据
    			    获取数据
    				# request.method   GET / POST				
    				# http://127.0.0.1:8009/home?nid=123&name=alex   get提交方式
    				# 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>
    	
    	
    	
    XXOO管理:
    	MySQL
    	SQLAlchemy
    	主机管理(8列):
    		IP
    		端口
    		业务线
    		...
    		
    	用户表:
    		用户名
    		密码
    	
    	功能:
    		1、 登录
    		2、主机管理页面
    			- 查看所有的主机信息(4列)
    			- 增加主机信息(8列) ** 模态对话框
    		3、查看详细
    			url:
    				"detail" -> detail
    		
    			def detail(reqeust):
    				nid = request.GET.get("nid")
    				v = select * from tb where id = nid
    				...
    		4、删除
    			del_host -> delete_host
    			
    			def delete_host(request):
    				nid = request.POST.get('nid')
    				delete from tb where id = nid
    				return redirect('/home')
    

      

  • 相关阅读:
    JS —— 数组与字符串方法
    CSS —— 选择器
    HTML —— 小记
    Javascript学习记录——数组去重
    尝鲜 vue3.x 新特性
    Weex项目快速打包
    揭秘C# SQLite的从安装到使用
    Javascript中Promise的简单使用
    网页背景图片的淡入淡出效果
    部分标点符号和数学符号的英文名字
  • 原文地址:https://www.cnblogs.com/qiangayz/p/8735539.html
Copyright © 2011-2022 走看看