django更新資料庫
❶ django1.5.4資料庫,auto_now時間不能自動更新
由於django官方解釋:
❷ django怎麼使用本機mysql資料庫
step 1:
修改你的django project目錄下的settings.py 文件至如下所示:
其中,'NAME' 對應的 『db_name' 是你事先使用mysql
的命令行提示符創建的資料庫名稱。注意:在django使用資料庫之前,你必須先創建出資料庫,否則會報錯。'USER'對應的'username'
還有 'PASSWORD' 對應的『passwd'
就是你在mysql中創建的用戶名和密碼。如果你有多個的話,隨便填一個就好。'HOST'和'PORT'默認都可以不填。
題外話: 使用用戶名和密碼登錄mysql的方法:
首先,你需要進入 mysql/bin的目錄下,也可以在.bash_profile中設置環境變數:
PATH=/usr/local/bin:/usr/bin:/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/local/Cellar/mysql/5.6.22/bin/
再在prompt輸入 mysql -u username -p, 回車後再輸入 passwd即可
step 2:
然後,在manage.py路徑中使用python manage.py syncdb 試試,結果會提示你錯誤找不到 MySQLdb 這個mole, 為什麼呢, 因為 python manage.py syncdb 命令是這樣工作的:
1. 在project目錄的settings.py的INSTALLED_APPS元組中找到可能需要更新的APP。
2. 找到每一個APP目錄中的models.py (關系定義文件),並針對變化在資料庫中進行更新。
說了這么多,前面那個錯誤 找不到 mole MySQLdb 是什麼意思啊 ?
先給個圖,再解釋:
因為在models.py中定義關系使用的是python,而真正在資料庫中操作形成model當然一定要用sql語句,所以必須要有一些功能模塊
來把python語句轉化成sql語句。如果你使用sqlite的話,由於sqlite和轉化模塊都已經由python內置了,所以直接使用不會發生錯
誤。但是 」mysql語句的轉化模塊「 就需要你手動載入了,這些模塊放在 MySQL-python 中。
我是使用pip 安裝的:
安裝了之後,再使用 python manage.py syncdb就OK啦。
我使用的系統是 OS X,下面是 mysql 默認的安裝路徑
/usr/local/Cellar/mysql/5.6.22/
如果你想知道你的資料庫文件是放在哪裡的,你可以查看mysql_config文件中的ldata變數,這個變數的值就是 默認的資料庫文件夾存儲的路徑。 我的系統中,mysql_config的完整路徑是 :
/usr/local/Cellar/mysql/5.6.22/bin/mysql_config
❸ django修改了setting的資料庫怎麼同步
修改setting.py裡面的DATABASES元組為
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'books', #你的資料庫名稱
'USER': 'root', #你的資料庫用戶名
'PASSWORD': '', #你的資料庫密碼
'HOST': '', #你的資料庫主機,留空默認為localhost
'PORT': '3306', #你的資料庫埠
}
}
INSTALLED_APPS = (
'books',#你的資料庫名稱
)
在mysql裡面創建books資料庫
檢查配置是否有語法錯誤
使用python manage.py sqlall books 顯示mysql語法
使用python manage.py syncdb同步模型中的資料庫
7
創建成功!
❹ models.py中增加了欄位,django中怎樣更新
如果你是使用django1.7以上,那麼自帶migrations功能,可以在生成遷移文件後,打開0001_initial.py(類似這樣的文件, 需要與你對應的app關聯起來,就是models所在的路徑下中的migrations文件夾),然後修改裡面中models中對應的class model(),然後找到類似這個operations = [
migrations.CreateModel(...),
# mysql specific
migrations.RunSQL('纖族alter table 表名 auto_increment=9995'),#數據帶顫庫不同,語句可能不同
]
其實這個可以通過修改資料庫中的表進行操作。這樣比較快。自己多找點資毀行弊料吧。
❺ django中user擴展表中數據怎麼更新
在models.py 中增加如下擴展user的類:
#==================擴展用戶====================================
class UserProfile(models.Model):
user = models.OneToOneField(User)
major = models.TextField(default='', blank=True)
address = models.CharField(max_length=200,default='',blank=True)
def __unicode__(self):
return self.user.username
def create_user_profile(sender, instance, created, **kwargs):
"""Create the UserProfile when a new User is saved"""
if created:
profile = UserProfile()
profile.user = instance
profile.save()
#post_save.connect(create_user_profile, sender=User)
""" 不明白的是,我一定注釋掉上面這一行,才不會出錯,否則會有Duplicate entry '2' for key 'user_id'") ,看意思是,重復了,但不明白為什麼重復,注釋掉上面的之後,一切正常,但與官方文檔又有差異了,迷惑中"""
#==================擴展用戶結束================================12345678910111213141516171819
還需要修改admin.py
"""用戶模塊擴展"""
class ProfileInline(admin.StackedInline):
model = UserProfile
#fk_name = 'user'
max_num = 1
can_delete = False
class CustomUserAdmin(UserAdmin):
inlines = [ProfileInline,]
admin.site.unregister(User)
admin.site.register(User, CustomUserAdmin)
"""用戶模塊擴展"""12345678910111213
修改settings.py 的配置,增加
"""用戶模塊擴展部分"""
AUTH_PROFILE_MODULE = 'djangoadmin.myadmin.UserProfile'
"""用戶模塊擴展完成"""123
按照官方的解釋,這里是app label加上擴展類的名字. 應該也就是創建的app的名字,官方推薦的方式就兩個部分用」.」連接起來,我這里有三個部分,也沒有報錯。
然後運行 python manage.py syncdb ,這是會在資料庫中創建響應的表,並且有user_id這個外鍵欄位.
最後,我們來運行一下程序,並進入到增加用戶旦拿界面中,你會發現,你擴展的欄位都顯示出來了
每次增加用戶,都會在擴展的表中增加相應的渣察數據,修改的時候,也會修改響相應的數據,通過 user_id 來關模梁搭聯,這樣就完成了user model的擴展。
如果要獲取擴展表中的內容,可以通過 request.user.get_profile().address 這種方式來獲取. 得到 User對象後,就能很方便的得到擴展的類.
❻ Django如何更新資料庫
最簡單的辦法是。為資料庫的表建立一個model。具體做法是這樣子。
1.在settings.py里設置資料庫連接方式。連接錯誤後面都沒有辦法
2.在models設置一個資料庫表的對應數據結構,通常叫關系對象模型,所以叫model,它就是一個類。你可以用django-admin.py ...probe,似乎是這個命令,就是一個資料庫的探測命令,可以根據表,自動生成model的代碼。當然如果你先寫了model的代碼就可以用syncdb命令生成資料庫的表
3.在urls.py里設置一個URL的path,當瀏覽器訪問這個path時就可以打開對應的view中的函數
4.在view里
4.1 result=modelclass.objects.all()這個命令可以取出所有的記錄
4.2 然後你可以直接將結果傳遞給模板。由模板顯示。這是最合理的辦法
4.3 在模板里 {% for cols in result %}
4.4 <li>cols.field1</li>
大約就是這樣子。可能說的太粗。你對著教程看就知道了。
❼ django更新模型的部分欄位怎麼做
在class里更新欄位
運行python manage.py makemigrations記錄遷移
運行Pythonmanage.py migrate 將更新實施到資料庫表中
這個過程中可能會出現很多問題,比如已有的數據記錄怎麼更新,關聯的對象怎麼處理。詳細可參考劉江的博客和教程:liujiangblog-com
❽ pycharm+django怎麼同步資料庫
pycharm+django怎麼同步資料庫
如果是同一種資料庫的話,你同步的數據表結構是否相同,如果也相同的話,完全可以利用數據春消彎庫的同步復制機制來解決;
(做主從) 如果表結構不相同的話,如果不在應用層處理的話,有兩種方式參考:扒悶
1,A推數據給B;A有數據的時候,實時或非實時(採用event或trigger)將數據推到B中,B再做處理;
2,B從A拉數據,用一個event(mysql中的job)定時從A中拉數據然後進行處理;
另外可以選擇在應用層來做,這個我就不橋扮多介紹了,根據業務邏輯coding就行了。
❾ django1.8更改了model後要怎樣重建資料庫
目前到django1.7 為止
修改model的前提是:你已經創建完model,沒晌並且已經 使用 syncdb 或 migrate 創建了滑察慎相應的資料庫表信敬。
然後再 修改model,不會對資料庫表產生任何修改的。
具體的東西,自己去看 Django 相應版本的文檔去吧
不同版本,不太一樣。