(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就好了