问答文章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
深圳开始全市解封,卖家需做好准备 直通车按什么收费的?收费怎么算? 拼多多直通车产品规则(拼多多直通车收费标准) 江西司法警官职业学院好不好 微信头像晃动是啥意思 一朋友说我是猪,我说他是猪,他问我猪说谁,我该怎么回答 怎么说话能憋住人呢?比如:猪,你说谁呢? 男方:母猪说谁呢 女方:说你这只公猪呢 男方:应该怎么幽默回答好 湖南专升本技能竞赛免试生未被录取可参加普通考试 2024年湖南专升本竞赛免试奖项有哪些 django试图怎么管理(2023年最新解答) 求助啊,有没有谁能告诉我东北财经大学怎么样啊? ihone上我把我妈的facetime给关了 把ID也注销了 为什么她发给我短信... 微信公众号的二维码怎么获得? 都说男人是下半身动物,其实现实中女人才是下半身动物,老公短小,分分钟... 参考文献应该怎么写才规范呢? 女主角是中情局,老公是动物学家电影叫什么 腾讯视频vip会员可以在几个设备同时登陆? 头皮癣(脓癣) 治疗方法 治疗脓癣最好的方法 胃下垂小腹胀痛腰机酸痛按摩什么穴位可以治疗缓解 胃下垂怎么办按摩食疗法治疗胃下垂 胃下垂康复锻炼的具体方法有哪些? 凤凰古城旅游攻略 交通住宿 从苏州高新区康佳花园苏州新区嵩山路3号罗技科技(苏州)有限公司怎么... 苏州罗技电子在嵩山路3号,从火车站坐公车的路线,谁能告知? 苏州罗技科技面试地点在哪 关于苏州罗技科技有限公司招工 织梦dedecms 中怎么在首页调用指定单篇文章的body主体内容和简介_百 ... 恐怕第三件事才是买各种玩意儿—风筝、空竹、口琴等。破折号作用 Django视图怎么加个图片(2023年最新解答) Django如何把网页放到内网(怎么用django写一个登陆页面) yii框架中文件上传, 可以上传成功,为什么数据库添加不到数据库中? 哪... 求提议:二战著名武器和现代著名武器的装备结合:人物设定(要求一把现代... 东京飞达拉斯旅游路线攻略图 咸阳小麦冬灌时间 含砷难处理金矿石生物氧化工艺及应用图书信息 卡林型金矿选矿技术与环境影响 纽约旅游刚回来,发现曼哈顿上西区身处闹市却很惬意悠闲,想问问上海有... ...糖就算塌下来又怎样是什么歌-王心凌彩虹的微笑歌曲介绍 彩虹的微笑歌词和don't stop歌词好像哦,是不是抄袭 王心凌彩虹的微笑歌词 有谁知道王心凌最近的行动?她有哪些好听的歌!出名的不要说. 公户上的钱转入私户,这8种方式是允许的! 让老板放心公转私的八种方式!请收藏! 巅峰战舰怎么弄银币 巅峰战舰怎么提升战舰品阶 巅峰战舰提高战舰品阶攻略 巅峰战舰个人生涯困难模式能领银币吗 如何彻底删除微信里的聊天图片 在国内十大门窗品牌中,哪一家更受推荐?
  • 焦点

最新推荐

猜你喜欢

热门推荐