简介:本文的首席执行官Note将向您介绍Django如何将用户名传递给前端相关内容。我希望这对每个人都会有所帮助。让我们来看看。
烧瓶是一个非常简单,更漂亮的单文件Python的Web开发框架。Bootstrap是一个强大的工具箱。我没有使用过它,但是我会在有时间(本周)时尝试学习它。应该有一个很好的体验。
该烧瓶教程可在其官方网站上找到。如果您熟悉Python,您将在10分钟内学习。
连接MySQL数据库,建议您不使用任何ORM,请直接由MySqllib我自己编写SQL语句,这很简单。当然,如果您的SQL语句不熟悉它持续了几分钟。Python的DBAPI2.0框架非常容易成为Connect,StartCursor,Fetchone的主要命令。
SQLite3比MySQL简单。连接的时间加文件名,其余的与MySQL相同。
git管理需要一组环境。在ubuntu之类的Linux下,您只需要安装APT-GEG。有一些使用类似CVS的方法。
实际上,有一种更简单的方法来实现学生管理。仅安装一组Django,并需要两天的时间来学习其教程。它是在一次呼吸中构建的。直接使用其管理模块,几乎无需开发就可以使用它。
Django将绘制的图像从PY文件传输到前端,并努力工作。好吧,它看起来像是一个模特,而Azaiso进入了魔法残酷的人。
特点
字符形的数据相对容易获得。
senddata = {“ exportType”:exportType,exportType,
“ bugids”:bugids,
“测试”:json.stringify({“ test”:“ test”})
};
只需使用exportType = request.get.get.get(“ exportType”)在django的后端
您可以正常获取此数据。
注意:Python2.7中的数据由Unicode编码。如果您想使用它,有时您需要转向str
结果:示例:
DEBL类型“ Unicode”
大批
获取数组类型的数据。如果您使用获得字符串数据的方法,则结果无。我们想使用此方法:
bugids = request.get.getList(“ bugids []”)
以这种方式获得的数据是数组类型。
注意:所获得的数组中的元素是Unicode编码的,并且需要某个点需要该部分
结果:示例:
?通过URL
[14/JUL/2016 11:00:41]“ get/testtools/exportbug/?exportType = exporttype = explbugids%5b%5d = 102bugids%5D = 101bugids%5D
?获得的数据
[u'102',u'101',u'100',u'99',u'98',u'97',u'96',u'96',u'95',u'94',u'94',u'93',u'92',u'91',u'90',u'89',u'88',u'87'
典型的
典型数据可以视为字符串数据。获得相应的字符串后,您可以使用JSON模块将其格式化。
对于前端,传递字典的典型数据是传递JSON数据,因此使用方法是:
“测试”:json.stringify({“ test”:“ test”})
结果:示例:
{“ test”:“ test”}键入'unicode'
相关的源代码
?获取方法
GET方法是WSGI中的一种方法。
def获取(自我):
#WSGI规格说“ query_string”可能是清晰的。
raw_query_string = get_bytes_from_wsgi(self.envring,'query_string','')
返回http.querydict(raw_query_string,encoding = self._encoding)
最终返回是http.querydict(raw_query_string,encoding = self._encoding)http的原始数据,而QueryDict在MultivalueDics中继承了,因此我们只看了多亚数。
?数量化
实际上,源代码看起来并不困难。
def get(self,key,default = none):
”“”
返回传递密钥的最后一个数据值。如果键do
或值是一个空列表,然后默认被拒绝。
”“”
尝试:
val = self [键]
除了键:
返回默认值
如果值== []:
返回默认值
返回阀
def getList(self,key,default = none):
”“”
返回传递密钥的值列表。如果键不存在,
然后重新列出默认值。
”“”
尝试:
返回super(Multivaledict,self).__ getItitItem __(键)
除了键:
如果默认为无:
返回 []
返回默认值
def __getItem __(self,key):
”“”
返回该密钥的最后一个数据值,或[]如果是一个空列表;
如果找不到的话,请提高钥匙扣。
”“”
尝试:
list_ = super(MultivalueDict,self).__ getItitItem __(键)
除了键:
提高MultivaleMedIctKeyError(reter(key))
尝试:
返回列表_ [-1]
除了IndexError:
返回 []
有三种方法:1。在模板中的HTML文件中,嵌入包含此功能或直接添加到HTML.2的JS文件中,然后通过JS中的AJAX访问打开链接,例如/admin/url?key = value,然后在admin.py中的url方法中,这样的keyvlaue = request.get.get.get.get('key',none)获取此值
有时,我们需要一些变量来使用模板模板页面。这些变量在views.py.py.py.py.the.cy中没有返回设置。例如,以下代码:
#编码:UTF-8
从django.shortcuts导入渲染
DEF索引(请求):
上下文= {}
上下文['title'] ='测试标题'
返回渲染(请求,'index.html',上下文)
以上是views.py.t的方法之一。如下:
html
头/头
身体
H3 {title}}/H3
p是否登录:{{request.user.is_authenticated}/p
/身体
/html
除标题变量值外,响应结果还具有是否登录。登录信息来自请求变量。问题在于,请求变量未写入views.py.pys.pys.py的上下文中,并且模板不必获取变量。
当时这并不是一无所有。我逐步进行分析。解释原理后,您自然了解如何设置模板的全局变量或默认变量。
渲染方法是render_to_response的简短方法。上面的views.py代码等同于以下内容:
#编码:UTF-8
来自django.shortcuts导入render_to_response
来自django.template导入requestContext
DEF索引(请求):
上下文= {}
上下文['title'] ='测试标题'
返回render_to_response('index.html',context,requestContext(request))
如果删除了render_to_response的第三个参数,则requestContext(请求)部分。
index.html模板页面的值无法获得{{request.user.is_authenticatiencation}},也就是说,没有请求变量传递到首页。很明显requestContext至关重要。
RequestContext的内容可从官方Django文档中找到。
此类将分析设置模板设置中的Context_Processors配置。新的Django Project settings.py文件中的默认模板设置如下:
模板= [
{{{
'后端':'django.template.backends.django.djangotemplates',
'dirs':[],
'app_dirs':是的,
'选项': {
'Context_Processors':[
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',,
] ,,,,
},,
},,
这是给予的
每个人都可以发现Context_Processors具有一系列设置,其中Django的源代码是根据Django.template.context_processors.request找到的。
Django安装在Python安装目录中的LIB/SITE包装/目录中。查找django/template/context_processors.py文件。打开它时,您可以看到请求方法:
DEF请求(请求):
返回{'请求':请求}
此方法返回字典,键是请求,而值是请求对象。显然,渲染中的请求对象是通过在设置中加载context_processors list方法来获取字典项目。
我们还可以使用此方法为Django项目设置一个全局模板变量。例如,我的Django名称是myProject,并在myproject/myproject目录中创建Contexts.py文件。代码如下:
#编码:UTF-8
来自django.conf导入设置
#置
def lang(请求):
返回{'lang':settings.language_code}
该文件的方法需要请求参数,最后您需要返回字典。
再次打开settings.py文件,添加刚刚用模板编写的方法:
模板= [
{{{
'后端':'django.template.backends.django.djangotemplates',
'dirs':[],
'app_dirs':是的,
'选项': {
'Context_Processors':[
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',,
#customized模板全局变量(默认变量)
'myproject.contexts.lang',
] ,,,,
},,
},,
这是给予的
添加全局变量后,我们可以使用该变量,而无需在任何位置上手动编写相关代码以渲染模板页面。
如果是Django的构建 - 模板引擎,
例如,A类,实例A,A,一个属性名称,
然后{{a}}是一个实例a,{{a.name}}是命名值
结论:以上是首席CTO向您提出的Django的全部内容,Django如何将用户名传递到前端。我希望这对每个人都会有所帮助。如果您想了解有关此信息的更多信息,请记住收集并关注此网站。