问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

django放在文件夹视图函数怎么调用(2023年最新解答)

发布网友 发布时间:2024-09-27 03:36

我来回答

1个回答

热心网友 时间:2024-10-28 08:48

导读:很多朋友问到关于django放在文件夹视图函数怎么调用的相关问题,本文首席CTO笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!

python——Django项目开发:配置项目/static/路径,调用css、img、js等静态文件

在Django项目开发中,不能像正常web开发一样通过 'imgs/bg.jpg' 访问本地静态文件,需要做一些配置,才能实现静态文件的访问。

一、首先在项目根路径下新建一个static文件夹,然后在static文件夹下可以新建相应的css、imgs、js等文件夹,用于存放css、img、js等静态文件。

二、项目配置

1、打开settings.py,在底部添加:

2、打开urls.py,在 urlpatterns 中添加:(注意,如果你在blog目录下也建立了urls.py,那么就得在blog/urls.py中做修改。别忘了import settings):

(不过我经过实测,不加这一个,也可以完成静态文件的访问)

3、在html模板最上面添加:

然后在需要的地方按照这个格式进行调用,如:

最后重新运行项目,img等本地静态文件就可以被django找到了,这时模板对应的页面就可以显示使用img等文件了。

django1.9框架中视图怎么实现事务处理

Django默认的事务行为

默认情况下,在Django中事务是自动提交的。当我们运行Django内置的模板修改函数时,例如调用model.save()或model.delete()时,事务将被立即提交。这种机制和数据库的自动提交事务机制类似。记住这里没有默认的回滚机制。

Django里面怎么实现数据库视图啊 就是虚拟表

正经回答:先在数据库中建立好视图,然后django中建立对应的model。表所对应的类下面再建立一个Meta类,大致如下

class?ViewModel(models.Model):

????"""这个model类对应你所建立好的视图"""

????class?Meta(object):

????????"""同理,该方法可用于使用mysql中任何已有的表,不仅是视图"""

????????db_table?=?'your_view'?#显式指定表名,也就是你建立的视图的名字

????????managed?=?false?#默认是ture,设成false?django将不会执行建表和删表操作

????#?建立字段间的映射

????#??需要注意的是,必须设一个字段为主键

????#??不然django会自动创建一个id字段为主键,引发错误

百度知道越来越辣鸡了,全是答非所问的。

Python 语言Django 框架的简化视图

1 我们在用Django编程时,会发现,经常需要用到列表、详情、修改这些操作。这些操作 几乎可以满足数据编辑的大部分要求。那能不能像YII2脚手架功能一样直接提供一个通用的模板类,只需指定几个必要的参数,所有的功能自己去实现呢。

2 Python 语言Django 框架,刚好提供这样的功能, 它有很多叫法,如 类视图、通用视图、简化视图,都指的是它。我们可以把它看成 Django 框架的脚手架。

3 Django简化视图底层的本质是通过从URL传递过来的参数去数据库查询数据,加载一个模板,利用得到的数据渲染模板(按照路由、视图、模板、模型的路线图)。

4 以下是Django 框架提供的简化视图,可以直接拿来使用。

View ------------------- 所有类视图的基类

TemplateView --------------渲染一个template

RedirectView ----------------重定向类视图

通用显示视图Display view:

DetailView ---------------展示单个object

ListView ------------------展示多个object

通用编辑视图Edit view:

FormView -------------- 显示一个form表单

CreateView ------------ 创建一个对象

UpdateView ------------更新对象

DeleteView --------------删除对象

5 例,路由代码

path('', views.IndexView.as_view(), name='index'),

视图代码

class IndexView(generic.ListView):

template_name = 'polls/index.html'

context_object_name = 'latest_question_list'

def get_queryset(self):

return Question.objects.order_by('-pub_date')[:5]

6 小贴士 6-1通用视图实际上 是类视图的一种,Django类视图的完整架构还是很庞大的。笔者只是提纲挈领,有兴趣 可以试着搜索“使用Django通用视图的get_queryset, get_context_data和get_object等方法”深入学习。

6-2 笔者在看一些程序员在做PHP后台维护时,数据库经常被SQL注入,其实简单点使用addslashes()函数就能解决大部分问题。

如何使用django session

Django 完全支持匿名 Session。 Session 框架允许每一个用户保存并取回数据。它将数据保存在服务器端,并将发送和接收 Cookie 的操作包装起来。在 Cookie 中包含的是 Session ID,而不是数据本身。

启用 Sessions?

Session 是通过 中间件 的方式实现的。

要启用 Session 的功能,需要完成以下步骤:

修改 MIDDLEWARE_CLASSES 设置,并确定其中包含了 'django.contrib.sessions.middleware.SessionMiddleware' 。``django-admin.py startproject`` 所创建的缺省的 settings.py 就已经激活了 SessionMiddleware 。

将 'django.contrib.sessions' 添加到你的 INSTALLED_APPS 设置中,并执行 manage.py syncdb 以便安装用于存储 Session 数据的表格。

Changed in Django 1.0: 如果你并未使用数据库存储 Session,则此步骤可以忽略;参考 配置 Session 引擎 。

If you don’t want to use sessions, you might as well remove the SessionMiddleware line from MIDDLEWARE_CLASSES and 'django.contrib.sessions' from your INSTALLED_APPS. It’ll save you a small bit of overhead.

配置 Session 引擎?

New in Django 1.0..

缺省情况下,Django 将 Session 存储在数据库中 (使用模型 django.contrib.sessions.models.Session)。尽管这很方便,但在某些情况下,把 Session 放在其它的地方速度会更快。因此 Django 允许您通过配置让它将 Session 数据保存在文件系统或缓冲区中。

使用基于文件的 Session?

要使用基于文件的 Session,请将 SESSION_ENGINE 设置为 "django.contrib.sessions.backends.file" 。

您可能还需要修改 SESSION_FILE_PATH 这一设置以便控制 Django 存储 Session 文件的位置,缺省情况下,它使用 tempfile.gettempdir() ,通常是 /tmp 。

使用基于缓冲区的 Session?

要使用 Django 的缓冲区系统来保存 Session,需要将 SESSION_ENGINE 设置为 "django.contrib.sessions.backends.cache" 。您必须确保您已经配置了缓冲区,详情请参考 缓冲区文档 。

Note

只有在使用 Memcached 作为缓冲后台时,才能使用基于缓冲区的 Session。因为以本地内存作为缓冲后台时,它存储缓冲数据的时间太短了,这样直接访问文件或数据库的速度,要比通过缓冲区访问文件或数据库的速度更快一些。

在视图中使用 Session?

在开启 SessionMiddleware 后,每一个 HttpRequest 对象 (Django 视图函数的第一个参数) 救火有一个 session 属性,它是一个类字典对象。您可以直接对其读写。

Session 对象有以下标准字典函数:

__getitem__(key)

例子: fav_color = request.session['fav_color']

__setitem__(key, value)

例子: request.session['fav_color'] = 'blue'

__delitem__(key)

例子: del request.session['fav_color']. This raises KeyError if the given key isn’t already in the session.

__contains__(key)

例子: 'fav_color' in request.session

get(key, default=None)

例子: fav_color = request.session.get('fav_color', 'red')

keys()

items()

setdefault()

clear()

New in Django 1.0: setdefault() 和 clear() 是在这个版本新加的。

它还有如下方法:

flush()

New in Django 1.0.

从数据库中删除当前的 Session 数据并且重新生成一个 Session 键,并将其发送给浏览器。这用于需要确保 Session 数据无法再从用户浏览器访问时,譬如调用 django.contrib.auth.logout() 时。

set_test_cookie()

设定检测 Cookie 以检验用户的浏览器是否支持 Cookie。因 Cookie 的工作方式,在下一次用户请求之前,您都无法得到测试结果。详情参考下面的 设置检测 Cookie 。

test_cookie_worked()

判断用户的浏览器是否收到了检测 Cookie,并返回 True 或 False 。因 Cookie 的工作方式,您必须在之前的独立请求中调用 set_test_cookie() 。详情参考下面的 设置检测 Cookie 。

delete_test_cookie()

删除检测 Cookie,请自己调用此函数以便清除该 Cookie。

set_expiry(value)

New in Django 1.0.

设定 Session 的过期时间。您可以提供下述几种形式的值:

如果 value 是整形,则它表示的是秒。例如,调用 request.session.set_expiry(300) 会让 Session 在五分钟后过期。

如果 value 是 datetime 或 timedelta 对象,则 Session 将会在相应的日期或时间点过期。

如果 value is 0 ,则用户的 Session 会在浏览器关闭时过期。

如果 value is None ,则 Session 会使用全局策略来设定过期时间。

get_expiry_age()

New in Django 1.0.

获得此 Session 的过期时间。对于没有自定义过期时间的 Session (或在浏览器关闭时过期的 Session),此函数返回值与 settings.SESSION_COOKIE_AGE 相同。

get_expiry_date()

New in Django 1.0.

获得此 Session 的过期时间点。对于没有自定义过期时间的 Session (或在浏览器关闭时过期的 Session),此函数的返回值等于从现在到时间点 settings.SESSION_COOKIE_AGE 的秒数。

get_expire_at_browser_close()

New in Django 1.0.

返回 Session 是否会在浏览器关闭时过期,返回值为 True 或 False 。

您在视图中的任何位置都可以修改 request.session ,改多少次都行。

Session 对象指南?

直接在 request.session 上使用 Python 字符串作为字典的键,这比使用 Session 对象的方法来得更直接。

在 Session 字典中,以下划线开始的键,是保留给 Django 在内部使用的。

不要用一个新的对象覆盖 request.session ,也不要访问或修改它的属性,它只能作为一个类字典对象使用。

例子?

这个简单的视图在用户提交了评价信息后,将变量 has_commented 设定为 True ,这样就可以防止用户多次提交评价信息:

def post_comment(request, new_comment): if request.session.get('has_commented', False): return HttpResponse("You've already commented.") c = comments.Comment(comment=new_comment) c.save() request.session['has_commented'] = True return HttpResponse('Thanks for your comment!')

这个简单的视图让网站的“用户”登录:

def login(request): m = Member.objects.get(username=request.POST['username']) if m.password == request.POST['password']: request.session['member_id'] = m.id return HttpResponse("You're logged in.") else: return HttpResponse("Your username and password didn't match.")

...与上面的例子相对应的,下面的例子则让用户退出:

def logout(request): try: del request.session['member_id'] except KeyError: pass return HttpResponse("You're logged out.")

实际上标准的 django.contrib.auth.logout() 还会多做一些事情从而防止因疏忽造成的数据泄露。它会调用 request.session.flush() 函数。我们使用这些例子只是演示如何操作 Session 对象,它可不是一个完整的 logout() 实现。

设置检测 Cookie?

为方便起见,Django 提供了一种简单的方法来检测用户的浏览器是否支持 Cookie。只要在一个请求中调用 request.session.set_test_cookie() 并在后续请求中调用 request.session.test_cookie_worked() 即可。注意千万不要在同一次请求中同时调用。

之所以要在两次请求中调用 set_test_cookie() 和 test_cookie_worked() 是因为 Cookie 的工作模式。当您设定了 Cookie 后,再下一次请求前,都是没有办法知道浏览器是否会接收它的。

另外最好在测试完毕后,使用 delete_test_cookie() 清除测试用数据。

以下是一个典型的例子:

def login(request): if request.method == 'POST': if request.session.test_cookie_worked(): request.session.delete_test_cookie() return HttpResponse("You're logged in.") else: return HttpResponse("Please enable cookies and try again.") request.session.set_test_cookie() return render_to_response('foo/login_form.html')

在视图外使用 Session?

New in Django 1.0.

有一个 API 专门用于在视图之外操作 Session 数据:

from django.contrib.sessions.backends.db import SessionStores = SessionStore(session_key='2b1189a188b44ad18c35e113ac6ceead')s['last_login'] = datetime.datetime(2005, 8, 20, 13, 35, 10)s['last_login'] datetime.datetime(2005, 8, 20, 13, 35, 0)s.save()

如果您使用了 django.contrib.sessions.backends.db 后台,则每一个 Session 都是一个普通的 Django 模型。模型 Session 在文件 django/contrib/sessions/models.py 中定义。由于它是一个普通的模型,因此您可以使用 Django 的数据库编程接口直接访问它:

from django.contrib.sessions.models import Sessions = Session.objects.get(pk='2b1189a188b44ad18c35e113ac6ceead')s.expire_date datetime.datetime(2005, 8, 20, 13, 35, 12)

注意,要获得 Session 字典,需要调用 get_decoded() ,这是因为字典是以编码的方式存储的:

s.session_data 'KGRwMQpTJ19hdXRoX3VzZXJfaWQnCnAyCkkxCnMuMTExY2ZjODI2Yj...'s.get_decoded() {'user_id': 42}

Session 是何时存储的?

缺省情况下,Django 只在 Session 被修改时才会保存它,即只有字典中的值被修改或删除时:

# Session is modified. request.session['foo'] = 'bar' # Session is modified. del request.session['foo'] # Session is modified. request.session['foo'] = {} # Gotcha: Session is NOT modified, because this alters # request.session['foo'] instead of request.session. request.session['foo']['bar'] = 'baz'

对于在上面的最后一个,通过显示地设定 Session 对象的 modified 属性,可以通知 Session 对象它被修改了:

request.session.modified = True

要改变这种行为,可以将 SESSION_SAVE_EVERY_REQUEST 设定为 True 。如果 SESSION_SAVE_EVERY_REQUEST 是 True ,则 Django 在每一次独立的请求之后都会保存 Session。

注意,只有在创建或修改 Session 的时候才会送出 Session Cookie,如果 SESSION_SAVE_EVERY_REQUEST 为 True ,则每次请求都会送出 Cookie。

同样地,在送出 Cookie 时,它的 expires 部分每次都会被更新。

与浏览器同步的 Session 和持久的 Session?

通过设置 SESSION_EXPIRE_AT_BROWSER_CLOSE ,您可以控制 Session 框架使用与浏览器同步的 Session 或持久的 Session。

缺省情况下, SESSION_EXPIRE_AT_BROWSER_CLOSE 的值为 False ,这表示 Session Cookie 将会保存在用户的浏览器中,直到超过了 SESSION_COOKIE_AGE 。如果您希望用户不必在每次关闭浏览器后都重新登陆,请使用这种方式。

如果 SESSION_EXPIRE_AT_BROWSER_CLOSE 设定为 True ,则 Django 会使用与浏览器同步的 Co

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
帮忙介绍几个昆山好吃的地方 ...古代文学论述题——举例说明庄子散文的特点。谢谢(⊙o⊙)哦知 ... 天津滨海职业大学智能制造装备技术学什么 智能制造装备技术专业就业方向有哪些 智能制造装备技术专业主要学什么 公孙衍人物故事 吹奏乐器巴乌 巴乌简介 倒库要打转向灯 倒车入库要开转向灯吗 django试图怎么管理(2023年最新解答) 求助啊,有没有谁能告诉我东北财经大学怎么样啊? ihone上我把我妈的facetime给关了 把ID也注销了 为什么她发给我短信... 微信公众号的二维码怎么获得? 都说男人是下半身动物,其实现实中女人才是下半身动物,老公短小,分分钟... 参考文献应该怎么写才规范呢? 女主角是中情局,老公是动物学家电影叫什么 腾讯视频vip会员可以在几个设备同时登陆? 头皮癣(脓癣) 治疗方法 治疗脓癣最好的方法 胃下垂小腹胀痛腰机酸痛按摩什么穴位可以治疗缓解 胃下垂怎么办按摩食疗法治疗胃下垂 胃下垂康复锻炼的具体方法有哪些? 凤凰古城旅游攻略 交通住宿 从苏州高新区康佳花园苏州新区嵩山路3号罗技科技(苏州)有限公司怎么... 苏州罗技电子在嵩山路3号,从火车站坐公车的路线,谁能告知? 苏州罗技科技面试地点在哪 关于苏州罗技科技有限公司招工 织梦dedecms 中怎么在首页调用指定单篇文章的body主体内容和简介_百 ... 恐怕第三件事才是买各种玩意儿—风筝、空竹、口琴等。破折号作用 Django视图怎么加个图片(2023年最新解答) Django如何把网页放到内网(怎么用django写一个登陆页面) yii框架中文件上传, 可以上传成功,为什么数据库添加不到数据库中? 哪... 求提议:二战著名武器和现代著名武器的装备结合:人物设定(要求一把现代... 东京飞达拉斯旅游路线攻略图 咸阳小麦冬灌时间 含砷难处理金矿石生物氧化工艺及应用图书信息 卡林型金矿选矿技术与环境影响 纽约旅游刚回来,发现曼哈顿上西区身处闹市却很惬意悠闲,想问问上海有... ...糖就算塌下来又怎样是什么歌-王心凌彩虹的微笑歌曲介绍 彩虹的微笑歌词和don't stop歌词好像哦,是不是抄袭 王心凌彩虹的微笑歌词 有谁知道王心凌最近的行动?她有哪些好听的歌!出名的不要说. 公户上的钱转入私户,这8种方式是允许的! 让老板放心公转私的八种方式!请收藏! 巅峰战舰怎么弄银币 巅峰战舰怎么提升战舰品阶 巅峰战舰提高战舰品阶攻略 巅峰战舰个人生涯困难模式能领银币吗 如何彻底删除微信里的聊天图片 在国内十大门窗品牌中,哪一家更受推荐?