1. Python manager出现以下错误

File "C:\Python27\lib\functools.py", line 56, in <lambda>
'__lt__': [('__gt__', lambda self, other: other < self),
File "C:\Python27\lib\functools.py", line 56, in <lambda>
'__lt__': [('__gt__', lambda self, other: other < self),
RuntimeError: maximum recursion depth exceeded while calling a Python object

找到Python/lib/下的functools.py,将其中的

To fix the problem replace this (about line 56 in python\Lib\fuctools.py):

convert = {'__lt__': [('__gt__', lambda self, other: other < self),('__le__', lambda self, other: not other < self),('__ge__', lambda self, other: not self < other)],'__le__': [('__ge__', lambda self, other: other <= self),('__lt__', lambda self, other: not other <= self),('__gt__', lambda self, other: not self <= other)],'__gt__': [('__lt__', lambda self, other: other > self),('__ge__', lambda self, other: not other > self),('__le__', lambda self, other: not self > other)],'__ge__': [('__le__', lambda self, other: other >= self),('__gt__', lambda self, other: not other >= self),('__lt__', lambda self, other: not self >= other)]
}

to that:

convert = {'__lt__': [('__gt__', lambda self, other: not (self < other or self == other)),('__le__', lambda self, other: self < other or self == other),('__ge__', lambda self, other: not self < other)],'__le__': [('__ge__', lambda self, other: not self <= other or self == other),('__lt__', lambda self, other: self <= other and not self == other),('__gt__', lambda self, other: not self <= other)],'__gt__': [('__lt__', lambda self, other: not (self > other or self == other)),('__ge__', lambda self, other: self > other or self == other),('__le__', lambda self, other: not self > other)],'__ge__': [('__le__', lambda self, other: (not self >= other) or self == other),('__gt__', lambda self, other: self >= other and not self == other),('__lt__', lambda self, other: not self >= other)]
}

Read also: http://regebro.wordpress.com/2010/12/13/python-implementing-rich-comparison-the-correct-way/

1. admin中文显示:

----------------------------------------------------------------------------------------------
经确认是新版本的django包版本中只有zh_Hans目录,没有zh_CN,把zh_Hans目录复制一个zh_CN就Ok了
一楼评论的方法也不错,在settings里面直接改成zh-Hans,这样就不用升级完Django,还去改目录了。
-----------------------------------------------------------------------------------------------

2. 查询数据库按每条记录显示

可通过以下命令显示出来,再通过迭代器显示
a.values('列') 显露所有列的内容
a.values_list(列,列) 显示所有列

3. 如果添加现在Model的字段
正常情况下添加字段会出现错误python manager makimigrations
可以在新字段设定允许为空即可,原记录会自动添加

4. 时间显示
可在时间Field中设定auto_now_add=True, auto_now=True,这样系统输入时不显示,自动更新,默认为False,显示,可手动更改

5. admin:
--------------------------------------------------------------------

Admin放后台管理配置,所有的Model如果要在Django的Admin中显示,必须注册
from .models import Mpls_Ping,Mpls_Form
admin.site.register(Mpls_Ping,Ping_Admin)

如果想在后台显示相关的字段,可建类如下,参数用admin.ModelAdmin
class Ping_Admin(admin.ModelAdmin):
list_display =['POP','PE','A_end','B_end']

6. Model如果在负面中显示,需在model类中添加__str__方法
def __str__(self):
return self.POP

7. From直接调用Model,可在Model中用以下方式:
class Mpls_Form(ModelForm):
class Meta:
model = Mpls_Ping------这里就是Model类名称
fields = ['POP','PE','A_end','B_end']

8. 下拉框是一个二元数组
选择下拉框:
user_type = (
(1,'user'),
(2,'admin'),
)
user_t = models.IntegerField(choices=user_type,default=1,null=True)

9. 如果错误的最后一行是
django.core.exceptions.ImproperlyConfigured: Error loading either pysqlite2 or sqlite3 modules (tried in that order): No module named _sqlite3
则可以试一下命令
wget http://pysqlite.googlecode.com/files/pysqlite-2.6.3.tar.gz
tar -xzf pysqlite-2.6.3.tar.gz
cd pysqlite
python setup.py build_static install

10. 启用Mysql数据库:
将setting 中的 DATABASES改成如下
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'dbname', (注意这个后缀名一定要写对) # Or path to database file if using sqlite3.
'USER': 'root', # Not used with sqlite3.
'PASSWORD': '', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
}

然后在主目录同名下的__init__编辑如下:
import mysqldb/import pymysql
pymysql.install_mydqldb()

11. CSRF验证失败. 相应中断.
在Html的表单Form后面加:{% csrf_token %}

同时在Views里:
from django.template import RequestContext
return render_to_response('search.html',{'f':f},context_instance=RequestContext(req))---加在最后

不使用 CSRF 验证

在 setting.py 文件中删除 'django.middleware.csrf.CsrfViewMiddleware', ,如下所示

12. 模糊查询
可通过以下方式
a.objects.filter(user__contains='lo')

filter(name="abc") # 等于filter(name__exact="abc") 名称严格等于 "abc" 的人
filter(name__iexact="abc") # 名称为 abc 但是不区分大小写,可以找到 ABC, Abc, aBC,这些都符合条件
filter(name__contains="abc") # 名称中包含 "abc"的人
filter(name__icontains="abc") #名称中包含 "abc",且abc不区分大小写
filter(name__regex="^abc") # 正则表达式查询
filter(name__iregex="^abc")# 正则表达式不区分大小写

exclude(name__contains="WZ") # 排除包含 WZ 的Person对象
filter(name__contains="abc").exclude(age=23) # 找出名称含有abc, 但是排除年龄是23岁的

objects.all() 得到是一个django.db.models.query.QuerySet ,可迭代,可用Value列出所有值
objects.filter() 得到是一个django.db.models.query.QuerySet ,可迭代,可用Value列出所有值
也可通过a[0].字段名

a = m.objects.get() 得到是一个django.db.models.query.QuerySet,不可迭代,可通过 a.字段方式获取值

13. 可在Models中直接用ForginKey链接到User的用户库
author = models.ForeignKey(User)

14. 在显示页面上链接到实际的页面:
在原Html页面上:
<h1><a href="{% url 'blog.views.post_detail' pk=post.pk %}">{{ post.title }}</a></h1>

然后在urls:
url(r'^post/(?P<pk>[0-9]+)/$', views.post_detail)

在建一个post_detail方法:
from django.shortcuts import render, get_object_or_404
def post_detail(request, pk):
post = get_object_or_404(Post, pk=pk)
return render(request, 'blog/post_detail.html', {'post': post})

最后建一个显示的页面:
{% extends 'blog/base.html' %}

{% block content %}
<div class="date">
{% if post.published_date %}
{{ post.published_date }}
{% endif %}
</div>
<h1>{{ post.title }}</h1>
<p>{{ post.text|linebreaks }}</p>
<p>{{ post.mymail }}</p>
{% endblock %}

15. django ModelForm has no model class specified.
从Model创建From,老是跳出django ModelForm has no model class specified.
最后将以下form改为model就好了,搞了两天了
原配置:
class PostForm(forms.ModelForm):
class Meta:
form = Post
fields = ['title','text']

正确配置:
class PostForm(forms.ModelForm):
class Meta:
model = Post
fields = ['title','text']

二、常用字段
models.DateTimeField  日期类型 datetime
参数,
auto_now = True :则每次更新都会更新这个时间
auto_now_add 则只是第一次创建添加,之后的更新不再改变。

models类型参考:
1、models.AutoField  自增列= int(11)
  如果没有的话,默认会生成一个名称为 id 的列,如果要显示的自定义一个自增列,必须将给列设置为主键 primary_key=True。
2、models.CharField  字符串字段
  必须 max_length 参数
3、models.BooleanField  布尔类型=tinyint(1)
  不能为空,Blank=True
4、models.ComaSeparatedIntegerField  用逗号分割的数字=varchar
  继承CharField,所以必须 max_lenght 参数
5、models.DateField  日期类型 date
  对于参数,auto_now =True则每次更新都会更新这个时间;auto_now_add 则只是第一次创建添加,之后的更新不再改变。
6、models.DateTimeField  日期类型 datetime
  同DateField的参数
7、models.Decimal  十进制小数类型= decimal
  必须指定整数位max_digits和小数位decimal_places
8、models.EmailField  字符串类型(正则表达式邮箱)=varchar
  对字符串进行正则表达式
9、models.FloatField  浮点类型= double
10、models.IntegerField  整形
11、models.BigIntegerField  长整形
  integer_field_ranges ={
    'SmallIntegerField':(-32768,32767),
    'IntegerField':(-2147483648,2147483647),
    'BigIntegerField':(-9223372036854775808,9223372036854775807),
    'PositiveSmallIntegerField':(0,32767),
    'PositiveIntegerField':(0,2147483647),
  }
12、models.IPAddressField  字符串类型(ip4正则表达式)
13、models.GenericIPAddressField  字符串类型(ip4和ip6是可选的)
  参数protocol可以是:both、ipv4、ipv6
  验证时,会根据设置报错
14、models.NullBooleanField  允许为空的布尔类型
15、models.PositiveIntegerFiel  正Integer
16、models.PositiveSmallIntegerField  正smallInteger
17、models.SlugField  减号、下划线、字母、数字
18、models.SmallIntegerField  数字
  数据库中的字段有:tinyint、smallint、int、bigint
19、models.TextField  字符串=longtext
20、models.TimeField  时间 HH:MM[:ss[.uuuuuu]]
21、models.URLField  字符串,地址正则表达式
22、models.BinaryField  二进制
23、models.ImageField图片
24、models.FilePathField文件

更多参数
1、null=True
  数据库中字段是否可以为空
2、blank=True
  django的Admin中添加数据时是否可允许空值
3、primary_key =False
  主键,对AutoField设置主键后,就会代替原来的自增 id 列
4、auto_now 和 auto_now_add
  auto_now 自动创建---无论添加或修改,都是当前操作的时间
  auto_now_add 自动创建---永远是创建时的时间
5、choices
GENDER_CHOICE =(
(u'M', u'Male'),
(u'F', u'Female'),
)
gender = models.CharField(max_length=2,choices = GENDER_CHOICE)
6、max_length
7、default  默认值
8、verbose_name  Admin中字段的显示名称
9、name|db_column  数据库中的字段名称
10、unique=True  不允许重复
11、db_index =True  数据库索引
12、editable=True  在Admin里是否可编辑
13、error_messages=None  错误提示
14、auto_created=False  自动创建
15、help_text  在Admin中提示帮助信息
16、validators=[]
17、upload-to

表结构的修改
表结构修改后,原来表中已存在的数据,就会出现结构混乱,makemigrations更新表的时候就会出错
解决方法:
1、新增加的字段,设置允许为空。生成表的时候,之前数据新增加的字段就会为空。
(null=True允许数据库中为空,blank=True允许admin后台中为空)
2、新增加的字段,设置一个默认值。生成表的时候,之前的数据新增加字段就会应用这个默认值

=========================================================================================================================

项目一:
1.创建一个模型,用于输入数据,在Admin里注册
2.在Views里定义两个函数,一个用于显示所有数据,一个用于查询
3.CSEF错误:在Form表单里加{% csrf_token %} ,在Views Return最后加context_instance=RequestContext(req)
4.通过Filter或All得到的数据,可用Values_list方法得到列表,再进行迭代出来

urls:
--------------------------------------------------------
from django.conf.urls import url
from django.contrib import admin
from app002 import views

urlpatterns = [
url(r'^search/', views.search),
url(r'^index/', views.getIP),
url(r'^admin/', admin.site.urls),
]

views:
--------------------------------------------------------
from django.shortcuts import render,render_to_response
from .models import MPLS_IP
from django.template import RequestContext

def getIP(req):
ipinfo = MPLS_IP.objects.all().values_list()
return render_to_response('index.html', {'ipinfo':ipinfo})

def search(req):
if req.method == 'POST':
pe1 = req.POST['pe']
f1 = MPLS_IP.objects.filter(PE=pe1)
f= f1.values_list()
else:
f = ''
return render_to_response('search.html',{'f':f},context_instance=RequestContext(req))

models:
--------------------------------------------------------
from django.db import models

# Create your models here.
class MPLS_IP(models.Model):
POP = models.CharField(u'站点',max_length=30)
PE = models.CharField(u'接入PE',max_length=30)
A_end = models.CharField(max_length=30)
B_end = models.CharField(max_length=30)
pub_date = models.DateTimeField(u'创建时间',auto_now_add=True)
update_time = models.DateTimeField(u'修改时间',auto_now=True)

def __str__(self):
return self.POP

index.html:
--------------------------------------------------------
<html>
<title>my page test</title>
<body>
<div>
<table >
<tr>
<td>ID</td>
<td>POP</td>
<td>PE</td>
<td>A-end</td>
<td>B-end</td>
<td>创建时间</td>
<td>修改时间</td>
</tr>
{% for i in ipinfo %}
<tr>
{% for j in i %}
<td>{{j}}</td>
{% endfor %}
</tr>
{% endfor %}
</table>
</div>
</body>
</html>

search.html:
--------------------------------------------------------
<html>
<title>my page test</title>
<body>
<form action='/search/' method="post">
{% csrf_token %}
<input type='text' name='pe'>
<input type='submit' value='查询'>
</form>
<div>
<table >
<tr>
<td>ID</td>
<td>POP</td>
<td>PE</td>
<td>A-end</td>
<td>B-end</td>
<td>创建时间</td>
<td>修改时间</td>
</tr>
{% for i in f %}
<tr>
{% for j in i %}
<td>{{j}}</td>
{% endfor %}
</tr>
{% endfor %}
</table>
</div>

===================================================================================================

Django 模板标签

if/else 标签
基本语法格式如下:

{% if condition %}
... display
{% endif %}

或者:

{% if condition1 %}
... display 1
{% elif condiiton2 %}
... display 2
{% else %}
... display 3
{% endif %}

根据条件判断是否输出。if/else 支持嵌套。

{% if %} 标签接受 and , or 或者 not 关键字来对多个变量做判断 ,或者对变量取反( not ),例如:

{% if athlete_list and coach_list %}
athletes 和 coaches 变量都是可用的。
{% endif %}

for 标签

{% for %} 允许我们在一个序列上迭代。
与Python的 for 语句的情形类似,循环语法是 for X in Y ,Y是要迭代的序列而X是在每一个特定的循环中使用的变量名称。
每一次循环中,模板系统会渲染在 {% for %} 和 {% endfor %} 之间的所有内容。
例如,给定一个运动员列表 athlete_list 变量,我们可以使用下面的代码来显示这个列表:

<ul>
{% for athlete in athlete_list %}
<li>{{ athlete.name }}</li>
{% endfor %}
</ul>

给标签增加一个 reversed 使得该列表被反向迭代:

{% for athlete in athlete_list reversed %}
...
{% endfor %}

可以嵌套使用 {% for %} 标签:

{% for athlete in athlete_list %}
<h1>{{ athlete.name }}</h1>
<ul>
{% for sport in athlete.sports_played %}
<li>{{ sport }}</li>
{% endfor %}
</ul>
{% endfor %}

ifequal/ifnotequal 标签

{% ifequal %} 标签比较两个值,当他们相等时,显示在 {% ifequal %} 和 {% endifequal %} 之中所有的值。
下面的例子比较两个模板变量 user 和 currentuser :

{% ifequal user currentuser %}
<h1>Welcome!</h1>
{% endifequal %}

和 {% if %} 类似, {% ifequal %} 支持可选的 {% else%} 标签:8

{% ifequal section 'sitenews' %}
<h1>Site News</h1>
{% else %}
<h1>No News Here</h1>
{% endifequal %}

注释标签
-------------------------------------------------------------------------
Django 注释使用 {# #}。
{# 这是一个注释 #}
过滤器
模板过滤器可以在变量被显示前修改它,过滤器使用管道字符,如下所示:
{{ name|lower }}
{{ name }} 变量被过滤器 lower 处理后,文档大写转换文本为小写。
过滤管道可以被* 套接* ,既是说,一个过滤器管道的输出又可以作为下一个管道的输入:
{{ my_list|first|upper }}
以上实例将第一个元素并将其转化为大写。
有些过滤器有参数。 过滤器的参数跟随冒号之后并且总是以双引号包含。 例如:
{{ bio|truncatewords:"30" }}
这个将显示变量 bio 的前30个词。
其他过滤器:
addslashes : 添加反斜杠到任何反斜杠、单引号或者双引号前面。
date : 按指定的格式字符串参数格式化 date 或者 datetime 对象,实例:
{{ pub_date|date:"F j, Y" }}
length : 返回变量的长度。
include 标签
{% include %} 标签允许在模板中包含其它的模板的内容。
下面这两个例子都包含了 nav.html 模板:
{% include "nav.html" %}

模板继承
模板可以用继承的方式来实现复用。
接下来我们先创建之前项目的 templates 目录中添加 base.html 文件,代码如下:
<html>
<head>
<title>Hello World!</title>
</head>

<body>
<h1>Hello World!</h1>
{% block mainbody %}
<p>original</p>
{% endblock %}
</body>
</html>
以上代码中,名为mainbody的block标签是可以被继承者们替换掉的部分。
所有的 {% block %} 标签告诉模板引擎,子模板可以重载这些部分。
hello.html中继承base.html,并替换特定block,hello.html修改后的代码如下:
{% extends "base.html" %}

{% block mainbody %}
<p>继承了 base.html 文件</p>
{% endblock %}
第一行代码说明hello.html继承了 base.html 文件。可以看到,这里相同名字的block标签用以替换base.html的相应block。

转载于:https://www.cnblogs.com/syother/p/6773598.html

django错误参考相关推荐

  1. django错误-You have 18 unapplied migration(s). Your project may not work properly until you apply the

    django错误-You have 18 unapplied migration(s). Your project may not work properly until you apply the ...

  2. django异常日志_【python小随笔】Django+错误日志(配置Django报错文件指定位置)...

    1:  自定义日志文件.py----------几个文件需要创建日志,就需要重新定义几份 #1定义一个日志文件 创建一个操作日志对象logger file_1= logging.FileHandler ...

  3. Django错误解决: CSRF verification failed. Request abor

    2019独角兽企业重金招聘Python工程师标准>>> 该解决办法是根据个技术博文上修改后的,因以为原方法无法解决这个错误,以下内容是根据我实际操作过程修正的. Forbidden  ...

  4. 高斯数据库错误参考代码GAUSS-51100——GAUSS-51236

    华为高斯用户使用手册: GAUSS-51000 - GAUSS-51999 - GAUSS-51200 - GAUSS-51299 - <华为 openGauss (GaussDB) v2.0 ...

  5. php中带?错误,参考-此错误在PHP中意味着什么?

    这是什么? 这是有关警告,错误和注意事项的许多答案,这些警告,错误和注意事项在您对PHP进行编程时可能会遇到,并且不知道如何解决它们.这也是一个社区Wiki,因此邀请所有人参与添加并维护此列表. 为什 ...

  6. django错误 - Reason given for failure: CSRF cookie..

    2019独角兽企业重金招聘Python工程师标准>>> 今天练习django的form的提交.当提交表单的时候,出现了 Forbidden (403) CSRF verificati ...

  7. Django 错误汇总

    1. 解决:python manage.py migrate sessions 2. 转载于:https://blog.51cto.com/jacksoner/2130665

  8. django错误-models.E028:::同一个表名在多个Model的db_table中使用

    在meta中设置managed=False managed的作用,待后续补充,源码中,会对managed=true的model进行检测,是否有多个model使用了同一个表名.

  9. Django 优秀资源大全项目资源非 Python 包工具贡献

    Awesome Django 介绍 Awesome-Django 是由 Roberto Rosario 发起和维护的 Django 资源列表.该列表收集了大量 Django 相关的优秀应用.项目等资源 ...

最新文章

  1. NVIDIA RTX技术是否会改变2019年的CG业务?
  2. android选择下拉框的默认值,如何在Android中将默认值设置为微调器下拉列表?
  3. 严重: A child container failed during start
  4. 计算机里的东西不小心删除如何恢复,原先在电脑界面上的文件不小心删除了怎么恢复,谢谢了...
  5. 第37课 thinkphp5添加商品基本信息及通过前置钩子上传商品主图 模型事件(勾子函数)...
  6. Throwable 结构图
  7. centos下安装opencv
  8. java 图片生成器_Java实现的图片生成器
  9. RabbitMQ消息队列之一:RabbitMQ的环境安装及配置
  10. Vue中computed 计算机属性、getter、setter
  11. 30个灵感来自大自然的国外网页设计作品欣赏
  12. js 通过图片URL地址将图片转为可操作的File文件对象
  13. 常用RGB颜色查询对照表及感情色
  14. java打印长方形、平行四边形、三角形、菱形
  15. AMD AM4主板首曝:A320芯片组 惠普打造
  16. 对抗博弈搜索——吃豆人
  17. [墨者学院] 日志文件分析溯源(脱裤的IP地址)
  18. ARM嵌入式主板之路
  19. 高通Q+A平台 android gcore解析环境搭建
  20. win10系统访问局域网服务器,Win10系统不能访问局域网共享磁盘的解决方法

热门文章

  1. linux中yum怎么安装服务器,yum安装(linux如何安装yum)
  2. 用matlab分析时间响应教程,基于Matlab的多自由度耦合滑移模型的动力响应可靠度分析...
  3. ncvlog帮助文档存放路径_Cadence ncvlog error
  4. java 底层运行_从表面到底层丨Java和JVM的运行原理,现在带给你
  5. laravel框架集成PHPExcel讲解及demo
  6. python【数据结构与算法】选数问题(指定值求和——递归)
  7. Tensorflow【实战Google深度学习框架】用卷积神经网络打造图片识别应用
  8. Python程序设计题解【蓝桥杯官网题库】 DAY9-基础练习
  9. Python中的排序sorted(d.items(), key=lambda x: x[1])
  10. mybatis mysql rownum_MyBatis怎样实现MySQL动态分页?