Django報錯說明整理


(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):

  1. 在自己的user目錄(C:\Users\用戶名)建一個pip文件夾,有的話就不用建了

    怎么解決pip下載慢,超時等問題
  2.  

    在pip文件夾下建一個pip.ini文件

    怎么解決pip下載慢,超時等問題
  3.  

    在pip.ini文件里面加上這兩句

    [global] 

    index-url = http://mirrors.aliyun.com/pypi/simple/ 

    [install] 

    trusted-host=mirrors.aliyun.com 

    怎么解決pip下載慢,超時等問題
  4. 4

    保存一下再運行pip就好了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM