(venv) E:\python_vm01\django_lesson>python3 manage.py runserver 8080
Watching for file changes with StatReloader
Exception in thread django-main-thread:
Traceback (most recent call last):
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\threading.py", line 926, in _bootstrap_inner
self.run()
django.core.exceptions.ImproperlyConfigured: Application labels aren't unique, duplicates: blog
提示标签blog重复了。 排查setting 中 blog配置文件中已经添加过目录
————————————————————————————————————————————————————————————————————————————
TypeError: init() missing 1 required positional argument: ‘on_delete’
代码如下:
from django.db import models
# Create your models here.
class Contract(models.Model):
nid = models.AutoField(primary_key=True)
name = models.CharField(max_length=120)
price = models.DecimalField(max_digits=9, decimal_places=2, default=0)
class Project(models.Model):
nid = models.AutoField(primary_key=True)
name = models.CharField(max_length=120)
price = models.DecimalField(max_digits=9, decimal_places=2, default=0)
# 与Contract建立一对多的关系
contract = models.ForeignKey(Contract)
————————————————
当执行 python manage.py makemigrations 出现错误:TypeError: init() missing 1 required positional argument: ‘on_delete’
解决方案:
定义外键的时候需要加上 on_delete=;
即:contract = models.ForeignKey(Contract, on_delete=models.CASCADE)
原因如下:
django 升级到2.0之后,表与表之间关联的时候,必须要写on_delete参数,否则会报异常:
TypeError: init() missing 1 required positional argument: ‘on_delete’
on_delete各个参数的含义如下:
on_delete=None, # 删除关联表中的数据时,当前表与其关联的field的行为
on_delete=models.CASCADE, # 删除关联数据,与之关联也删除
on_delete=models.DO_NOTHING, # 删除关联数据,什么也不做
on_delete=models.PROTECT, # 删除关联数据,引发错误ProtectedError
# models.ForeignKey('关联表', on_delete=models.SET_NULL, blank=True, null=True)
on_delete=models.SET_NULL, # 删除关联数据,与之关联的值设置为null(前提FK字段需要设置为可空,一对一同理)
# models.ForeignKey('关联表', on_delete=models.SET_DEFAULT, default='默认值')
on_delete=models.SET_DEFAULT, # 删除关联数据,与之关联的值设置为默认值(前提FK字段需要设置默认值,一对一同理)
on_delete=models.SET, # 删除关联数据,
a. 与之关联的值设置为指定值,设置:models.SET(值)
b. 与之关联的值设置为可执行对象的返回值,设置:models.SET(可执行对象)
由于多对多(ManyToManyField)没有 on_delete 参数,所以以上只针对外键(ForeignKey)和一对一(OneToOneField)
_________________________________________________________________________________________________________
Django – 安装mysqlclient错误:需要mysqlclient 1.3.13或更新版本;你有0.9.3
mysqlclient 1.3.13 or newer is required; you have 0.9.3
我尝试了所有建议的修复程序,包括:
– 升级点子
– 使用命令pip install mysqlclient-1.4.2-cp37-cp37m-win32.whl安装不同的轮子(32位而不是64位),即mysqlclient-1.4.2-cp37-cp37m-win32.whl(这样可以正常工作错误但不能完成所需的工作!)
我的目标是简单地将遗留的mysql数据库(在XAMPP和myphpadmin中运行)连接到Django.我已经按照文档忽略了安装mysqlclient的需要,并且已经陷入困境.
转到你的django / db / backends / mysql安装目录.
在错误消息中检查您的路径.
我正在使用pipenv所以我的路径是:
/home/username/.local/share/virtualenvs/project-env/lib/python3.7/site-packages/django/db/backends/mysql
打开文件base.py并搜索:
version = Database.version_info
在if和comment行中放入一个pass:
像这样.
if version < (1, 3, 13): pass ''' raise ImproperlyConfigured( 'mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__ ) '''
保存,关闭此文件并打开operations.py
搜索:
query = query.decode(errors='replace')
并将解码更改为编码
query = query.encode(errors='replace')
现在,尝试运行服务器.
_________________________________________________________________________________________________________________________________________________________________________________________________________
一.异常信息
在连接数据库时,突然出现了异常异常信息:
books@localhost: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized o ... more
也就是说,出现了mysql的无效连接属性异常:服务器时区值无法辨认或表示多个时区,如果你想使用时区支持,你必须通过服务器时区配置属性来配置服务器或JDBC驱动从而使用更具体的时区值。
二.异常原因
这是因为 mysql升级到8.0及以上,添加了许多新特性,安全性也得到提升。当然操作时也增加了些繁琐,需要考虑到的时区问题便是其中之一。
三.解决办法
1.通过配置JDBC驱动的连接字符串:
即配置url参数中的serverTimezone属性来解决异常,需要在连接字符串 url 后加上 serverTimezone=UTC.
2.服务器默认时区跟随系统时区。通过服务器时区配置属性来配置服务器的时区。
select now();
2.2 查看当前mysql区时
show variables like "%time_zone%";
2.3 修改mysql时区
//修改mysql全局时区为东八区,即表示北京时间 set global time_zone = '+8:00'; flush privileges; //时区修改生效之后,再次查询mysql时区 show variables like "%time_zone%";
____________________________________________________________________________________________________________________________________________________________________________________________________________
page not found
正则表达式 url路径分发使用 找不到页面
pip下载超时时间设置pip升级超时Traceback (most recent call last):
-
在自己的user目录(C:\Users\用户名)建一个pip文件夹,有的话就不用建了
-
在pip文件夹下建一个pip.ini文件
-
在pip.ini文件里面加上这两句
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
-
保存一下再运行pip就好了