2. 关于设置static静态文件,样式失效问题

原因: 可能开启多个端口号,页面显示访问的不是已经设置了static的模板,所以,样式没有显示

3. models模型中gender字段的选择设置

choice = [
(1, '男'),
(2, '女')
]
gender = models.PositiveSmallIntegerField(default=1, choices=choice)

如图,当使用1,2来代替男,女在数据库中的显示,在模型中写法如上,需要注意:数字1,2不加引号,否则在HTML页面使用get_gender_display,则无法显示出你想要的可读性语言,‘男’, ‘女’

4. 当模型层使用CharField, form 正则出错

原因widget 更改input在前端的样式,样式是固定的几种,所以,写正则出错

5. 文件上传 与form表单is_valid()判断问题

当上传相同文件时,需找到上一个上传文件的路径,然后通过路径获取它并删掉,再把当前的文件上传,如下:

ins = Duck.objects.get(pk=1)
form = UploadDuckForm(request.POST, request.FILES, instance=ins)
file_path = str(ins.photo) # --> ins.photo 获取的是图片文件对象,需转化为字符串
if form.is_valid():
# file_path = str(ins.photo) ---> 错误写法
full_path = settings.MEDIA_ROOT + file_path
if os.path.exists(full_path):
os.remove(full_path)
form.save()

通过instance获取之前的数据,
photo存储上传的图片路径, 如: 20181018/5.jpg
所遇问题:
  当进行is_valid()判断表单数据合法后,通过ins.photo获取的路径只有图片名称 ”5.jpg“,并没有上一级的上传时间
原因:
  未知,解决措施,如图,查找路径ins.photo放在form.is_valid()之前

6. js , jq 转换问题

原生dom获取,document.getElementById('#a')
jq获取, $('#a')
注意:
  jq转换成原生DOM,则通过 $('#a')[0] 更改
  然后如果获取元素的id,
  

如 <tr id="{{ fish.id }}">
获取id $('#a')[0].id

  则需注意,属性是元素dom所有,而jq没有,所以此时就需要上面所提到的相互转换,而jq获取id的值,则可以参考以下写法

$('#a').attr('id')

8. session 学习

session 是一个对象,一直都存在,清除时,只是清除了里面的键与值

  • 获取一条数据,没有则设为False
  • username = request.session.get('user', False)
  • 删除指定数据 del request.session['key']
  • 删除所有,键和值一起清空 request.session.flush()
  • 删除所有,只清空值 request.session.clear()
  • 注意: session中存入的是字符串,所以,如file存储在模型中,取出存入session时,需转化 str(user.photo)

10. 关于ajax

在纯js页面写ajax时,url 地址为显示的路径:如
HTTP://127.0.0.1:8000/。。。

12.  a标签

  • 行内标签最好不要嵌套块级元素,规定
  • 特殊需求时,如点击文章进入页面,此时添加a标签包裹块级元素div时,需要注意,内部不可再添加a标签,否则a标签则为单独出来

13.  order_by() 排序

Entry.objects.filter(pub_date__year=2005).order_by('-pub_date', 'headline')

"-pub_date" 前面的负号"-"表示降序排序。默认是采用升序排序。要随机排序,就使用 "?"

14. 不同语言对象获取问题

  • 在HTML页面写ajax时,url 采用 django的路由写法, 如  
   {% url 'news:di_vote' a%}

    此时js中 var a = $('.a').html(),来获取a,则出错!
    原因:
    两者语言不同,获取的不在一个地方,所有无法调用,这种写法是认知错误!!!
    {%%} {{ }} 模板里的参数,需要从view视图函数render中返回的才有效

  • get请求时,url后面拼参数,需要加上?

django项目所遇问题总结的更多相关文章

  1. centos7 apache httpd安装和配置django项目

    一.安装httpd服务 apache在centos7中是Apache HTTP server.如下对httpd的解释就是Apache HTTP Server.所以想安装apache其实是要安装http ...

  2. 终端指令操作创建Django项目

    需求:通过Django创建一个用户表和权限表. 用户表包括:用户名,邮箱,密码,管理权限. 权限表包括:普通用户,管理用户,超级用户. 权限表和用户表有一对多的关系,即用户表中的每条数据对应权限表中的 ...

  3. mac osx 上面部署Django项目 apache+mysql+mod_wsgi

    1.安装Xcode command line tools 首先,编译mysql和Homebrew需要用到Xcode command line tools,所以首先安装command line tool ...

  4. Apache部署django项目

    在此之前,我们一直使用django的manage.py 的runserver 命令来运行django应用,但这只是我们的开发环境,当项目真正部署上线的时候这做就不可行了,必须将我们的项目部署到特定的w ...

  5. python——创建django项目全攻略(野生程序员到家养程序员的完美进化)

    新建工程 我用pycharm写代码,所以一般就用pycharm创建django工程.右上角File-New Project.选择路径,修改项目名称,确定.就可以创建一个新的django工程.     ...

  6. Pychram如何导入Django项目

    最近在学Django,用GitHub来保存项目.但当从GitHub中clone出来后,Pycharm怎么来运行项目呢? 首先要对项目进行设置,使其能支持Django,具体设置如下: 在Pycharm中 ...

  7. 使用uWSGI部署django项目

    先说说什么是uWSGI吧,他是实现了WSGI协议.uwsgi.http等协议的一个web服务器,那什么是WSGI呢? WSGI是一种Web服务器网关接口.它是一个Web服务器(如nginx)与应用服务 ...

  8. Django项目深入理解

    python应用松耦合比方说,考虑有一个以前写的视图函数,这个函数显示当前日期和时间.如果我们想把它的URL 从原来的 /time/ 改变到/currenttime/ ,我们只需要快速的修改一下URL ...

  9. Python开发入门与实战2-第一个Django项目

    2.第一个Django项目 上一章节我们完成了python,django和数据库等运行环境的安装,现在我们来创建第一个django project吧,迈出使用django开发应用的第一步. 2.1.创 ...

随机推荐

  1. springMVC 配置jdbcTemplate连接Oracle数据库出错

    springMVC 配置jdbcTemplate连接Oracle数据库出错 错误信息: log4j:WARN No appenders could be found for logger (org.s ...

  2. SurfaceView左右滑动切换黑屏问题解决方式

    在项目中使用的是高德地图,放置MapView的Fragment和其它Fragment放置一个ViewPager中切换:当从MapView的Fragment切换到其它Fragment或者从其它Fragm ...

  3. ural 1989(树状数组+多项式hash)

    题意:给出一个字符串.有两种操作,一个是p a b,问字符串从位置a到位置b的子串是否是一个回文子串.还有一个操作 c a b,把字符串位置a的字符替换为b. 题解:由于字符串长度为1e5且问的次数也 ...

  4. What are the differences between WebAPI and WebAPI 2

    http://stackoverflow.com/questions/21298961/what-are-the-differences-between-webapi-and-webapi-2 Maj ...

  5. IDEA中FindBugs编码规范工具使用

    IDEA中安装FindBugs插件: file--Settings--Plugins 在Plugins搜索FindBugs: 安装完成后在项目中选中文件右键找到findBugs: 检查代码结果: 按照 ...

  6. PostgreSQL Replication之第四章 设置异步复制(4)

    4.4 基于流和基于文件的恢复 生活并不总只是黑色或白色:有时也会有一些灰色色调.对于某些情况下,流复制可能恰到好处.在另一些情况下,基于文件复制和PITR是您所需要的.但是也有许多情况下,您既需要流 ...

  7. [JLOI2011]飞行路线 分层图最短路

    题目描述: Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在nn个城市设有业务,设这些城市分别标记为0到n-1,一共有m种航线,每种航线连接两个城市,并且航线有一 ...

  8. iOS开发——根据数组中的字典中的某一元素排序

    数组中的元素是字典,字典中的某一个元素,比如说姓名,现在需要按照姓名的首字母来排序,怎么搞? 做法很简单,在字典中加一个元素,保存姓名的首字母,然后用下面的方法排序. - (void)sortWifi ...

  9. 05-数据类型转换(bool类型)

  10. MyBatis学习总结(17)——Mybatis分页插件PageHelper

    如果你也在用Mybatis,建议尝试该分页插件,这一定是最方便使用的分页插件. 分页插件支持任何复杂的单表.多表分页,部分特殊情况请看重要提示. 想要使用分页插件?请看如何使用分页插件. 物理分页 该 ...