1. django1.5.4資料庫,auto_now時間不能自動更新
由於django官方解釋:
2. 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
3. python,django,向mysql更新數據時save()報錯不能用
ValidationError 提示的是validation error,應該是某些field是not null的,你沒有給它賦值。建議貼上Student的model源碼以及你實際操作的語句。
4. 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對象後,就能很方便的得到擴展的類.
5. django1.8更改了model後要怎樣重建資料庫
#如果你說用的是pycharm編譯器的話:
使用ctrl+alt+r進入manage界面
然後輸入makemigrations[appname]創建資料庫引導文件
然後使用migrate[appname]來把model變化同步到資料庫
#[appname]指你當前model所在的app,如果不指定appname;則編譯全部app
#如果不是pycharm編譯器的話,請再追問
6. django更新資料庫
你解決了沒 我也是這個問題, 我看了下沒有問題還是包這個錯
7. django遷移過後沒有資料庫
django遷移過後沒有資料庫可以:
修改資料庫中相應表的字元集。修改整個資料庫的字元集。修改mysql配置文件/etc/my.cnf.d/server.cnf,重啟資料庫。
8. 在django form裡面要怎麼顯示資料庫中已有的數據,並更新數據
最簡單的辦法是。為資料庫的表建立一個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>
大約就是這樣子。可能說的太粗。你對著教程看就知道了。
9. django 製作web網站,動態頁面數據已更新,但是無法刷新,這是怎麼回事是頁面緩存嗎
其實你說你做了一個注冊頁面,然後post到當前頁面的地址,然後返回注冊成功的信息。
首先,如果現在成功返回的注冊成功信息,你點擊了F5或瀏覽器上的刷新,瀏覽器會默認再發一次請求,這時會問你是否繼續提交,如果你點了繼續提交,那麼你之前的注冊信息會再次被提交,如果後台不去驗證唯一性,那麼會出現兩條相同的記錄。
其次,假設不是上面所說的再次post提交,你直接瀏覽器輸入你的這個網址,默認做的是get提交,這時如果你的後台不去驗證當前用戶是否注冊過,那麼始終返回最初的注冊頁面,其實這里正常注冊提交上來的數據你會保存到資料庫里,那麼當前用戶對應的session_id在用戶登錄後就需要跟用戶進行綁定,只要是這個session_id那麼就提示已經注冊過就可以了
10. Django如何更新資料庫
Django如何更新資料庫
你修改完對象模型後,在命令行下用python manage.py syncdb就可以了。
不過資料庫如果不滿意 ,可以通過它的meta欄位補充定義。 通常都可以達到自己理想的名稱。
另外資料庫更新後,反過來生成對象模型也是可以的。probe或者是profile這個命令就可以。