Django文字教程

Posted momo8238

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django文字教程相关的知识,希望对你有一定的参考价值。

 

如下如下:

	1.创建Django工程
		Django-admin startproject 工程名
		
	  mysite
		settings.py---主配置文件
		urls.py-------URL路由文件
		wsgi.py-------网络通信接口
	  templates-------html文件的归置目录
	  manage.py-------diango管理主程序
		
	2.创建APP去处理业务请求,一个工程下面可以有多个APP.相当于一个大型项目中的分系统、子模块、功能部件等等,相互之间比较独立,但也有联系。
	  所有的APP共享项目资源。

	  cd 工程名
	  python manage.py startapp cmdb	  
	  
	  	app目录:
		-migrations 数据操作记录,是自动创建的。数据修改表结构
			-__init__.py #在python3里面可有可无都行
		-__init__.py
		-admin.py #django 为我们提供的后台管理。
		-apps.py  #配置当前App的
		-models.py #ORM,写指定的类,通过命令可以创建数据库结构。
		-tests.py  #单元测试
		-views.py  #业务代码。这个才是真正写代码的地方,上面的都是做配置的。

	 
	3.静态文件配置-在工程下面的setting中,即主配置文件中进行配置,CSS,JS等。
		mysite.settings.py,配置如下:
		STATICFILES_DIRS=(OS.PATH.JOIN(BASE_DIR,‘static‘),) #因为是元组,一定要有逗号
		
	4.模板路径配置-在工程下面的setting中,即主配置文件中进行配置,HTML等。
		DIRS==> [os.path.join(BASE_DIR,‘templates‘),]
		
	5.关闭django的跨站请求保护机制-在工程下面的setting中,即主配置文件中进行配置
		注释掉:
		#‘django.middleware.csrf.CsrfViewMiddleware‘
			
	6.定义路由规则-在工程下面的urls.py中,即URL路由文件中进行配置
		urls.py
			‘login‘--->函数名(只是对应一个函数名,后面是不带括号的)
			
	7.定义视图函数-APP下的views.py中写具体的函数内容。
	app->views.py
		def func(request): #request中包含客户端发来的请求中的所有内容
			#去请求里面取数据
			#request.method: GET/POST #获取请求的方式
			#request.GET.get(‘‘,None)  #获取请求发来的数据
			 127.0.0.1:8000/home?nid=123&name=Jack
			#request.POST.get(‘email‘,None)
			
			通过视图函数给用户返回数据的3中方法
			#return HttpResponse(‘字符串‘)
			#return render(request,‘html模板的路径‘) 例如:test1/home.html
			#return redirect(‘/只能填URL‘,) 不能填html模板的路径,只能填URL
		
	8.模板渲染
		有一套特殊的模板语言
		======{{变量名}}
		
			1).	def func(request):
					return render(request,‘index.html‘) #发送给用户的是静态的数据
				
			2).	def func(request):
					return render(request,‘index.html‘,{‘current_user‘:"Jack"}) #
					
				index.html
				<html>
				
					<body>
						<div>{{current_user}}</div>     #{{current_user}}相当于取变量值
					</body>
				</html>
				
			步骤:
				1>.用户请求来了,首先到达视图函数
				2>.视图函数先去把模板拿过来,模板里面有特殊标记,再把值与模板进行渲染,渲染完成之后就变成了字符串。如下:
				================最后生成的字符串,整体返回给用户。特殊的标记是在什么时候所做的替换?---视图函数在返回数据的那一刹那之前做的。
				所以咱们的浏览器拿到字符串的时候,永远是被渲染完毕的字符串。
				<html>
				
					<body>
						<div>Jack</div>
					</body>
				</html>
	 
		======For循环
			def func(request):
					return render(request,‘index.html‘,{‘current_user‘:"Jack",‘user_list‘:[‘alex‘,‘eric‘]})
					
				index.html
				<html>
				
					<body>
						<div>{{current_user}}</div>     #{{current_user}}相当于取变量值
						<ul>
							{% for row in user_list %} #row代表列表中的每一个元素,是一个变量名
							<li>{{row}}</li>
							{% endfor %}
						</ul>
					</body>
				</html>
	 
	 
		======字典索引,注意字典与列表的取法不同,一个用的是角标,一个用的是key值。
			def func(request):
					return render(request,‘index.html‘,{
								‘current_user‘:"Jack",
								‘user_list‘:[‘alex‘,‘eric‘],
								‘user_dict‘{‘k1‘:‘v1‘,‘k2‘:‘v2‘}})
					
				index.html
				<html>
				
					<body>
						<div>{{current_user}}</div>     #{{current_user}}相当于取变量值
						<a>{{user_list.1}}</a>
						<a>{{user_dict.k1}}</a>
						<a>{{user_dict.k2}}</a>
					</body>
				</html>
	 
		======条件======= if可以嵌套if循环,也可以嵌套到for循环里面。
			def func(request):
					return render(request,‘index.html‘,{
								‘current_user‘:"Jack",
								‘age‘:18,
								‘user_list‘:[‘alex‘,‘eric‘],
								‘user_dict‘{‘k1‘:‘v1‘,‘k2‘:‘v2‘}})
					
				index.html
				<html>
				
					<body>
						<div>{{current_user}}</div>     #{{current_user}}相当于取变量值
						<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>
	 
	 
	 
	 
	 
	 
	 
	
	
	
	
	
	
	

  

以上是关于Django文字教程的主要内容,如果未能解决你的问题,请参考以下文章

Markdown简明教程

Markdown简明教程

Django REST框架--认证和权限

如何在 Django Summernote 中显示编程片段的代码块?

Android Place自动填充片段:无法设置文字

Pycharm首次使用教程