亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

django配置mysql數據庫

發布時間:2020-07-14 07:41:04 來源:網絡 閱讀:753 作者:王家東哥 欄目:數據庫

查看ubuntu已安裝的所有軟件:

dpkg?-l??
dpkg?-l?|?grep?mysql


查看軟件安裝的路徑

dpkg?-L?|?grep?mysql


查看開機啟動的軟件,需要額外安裝插件:

sudo?apt-get?install?rcconf
rcconf

更能全一點的:
sudo?apt-get?install?sysv-rc-conf
sysv-rc-conf


安裝mysql:

#?apt-get?install?python-setuptools?libmysqld-dev?libmysqlclient-dev?
#?easy_install?mysql-python
或者?#pip?install?mysql-python



django setting配置:

DATABASES?=?{
????'default':?{
????????'ENGINE':?'django.db.backends.mysql',?
????????'NAME':?'books',??#你的數據庫名稱
????????'USER':?'root',??#你的數據庫用戶名
????????'PASSWORD':?'',???#你的數據庫密碼
????????'HOST':?'',???????#你的數據庫主機,留空默認為localhost
????????'PORT':?'3306',???#你的數據庫端口
????}
}


在model模塊中添加如下建表語句:

vi app/models.py

class?test1(models.Model):????
????name?=?models.CharField(max_length=20)???#定義的字段name為字段名

model模塊在app中,其中定義的類名就是表名(但是在數據庫中的表名會以app為前綴,例如項目為app則實際創建的表名為app_test1),CharField相當于varchar,DateField相當于datetime,max_length 相當于參數限定長度“varchar(20)”


python?manage.py?makemigrations????#查看表有哪些更改
python?manage.py?migrate?app?????#創建表結構

注意:這里如果之前已經同步過一次數據,現在又要添加字段,會報錯,解決辦法是在字段后面添加

null=True

例如:

ages=models.CharField(max_length=10,null=True)



為表添加數據:django需要查詢或者更新表時,需先導入表名才能獲取表內的數據。

from?app.models?import?test1
def?huoqu(request):????
???a?=?test1(name='wangjiadongge')?????#test1為表名,name為字段名。
???a.save()
???return?HttpResponse("數據添加成功!")



數據操作:

#獲取數據
def?huoqu(request):??
????
????#通過objects這個模型管理器的all()獲得所有數據行,相當于SQL中的SELECT?*?FROM
????list?=?test1.objects.all()????
????
????#filter相當于SQL中的WHERE,可設置條件過濾結果
????list1?=?test1.objects.filter(id=1)?
????
????#獲取單個對象
????list2?=?test.objects.get(id=1)?
????
????#限制返回的數據?相當于?SQL?中的?OFFSET?0?LIMIT?2;
????test1.objects.order_by('name')[0:2]
????
????#數據排序
????test1.objects.order_by("id")
????
????#上面的方法可以連鎖使用
????test1.objects.filter(name="runoob").order_by("id")
????
????#輸出所有數據
????for?var?in?list:????????response1?+=?var.name?+?"?"
????response?=?response1
????return?HttpResponse("<p>"?+?response?+?"</p>")

#更新數據
#?-*-?coding:?utf-8?-*-
?from?django.http?import?HttpResponse
?from?app.models?import?test1
?def?testdb(request):????#修改其中一個id=1的name字段,再save,相當于SQL中的UPDATE
????test?=?test1.objects.get(id=1)
????test.name?=?'Google'
????test.save()
????
????#另外一種方式
????#test1.objects.filter(id=1).update(name='Google')
????
????#?修改所有的列
????#?test1.objects.all().update(name='Google')
????
????return?HttpResponse("<p>修改成功</p>")
#刪除數據
#?-*-?coding:?utf-8?-*-
?from?django.http?import?HttpResponse
?from?app.models?import?Test
?#?數據庫操作def?testdb(request):????#?刪除id=1的數據
????test1?=?Test.objects.get(id=1)
????test1.delete()
????
????#另外一種方式
????#test1.objects.filter(id=1).delete()
????
????#刪除所有數據
????#test1.objects.all().delete()
????return?HttpResponse("<p>刪除成功</p>")


#django在前端中展示從數據庫中獲取到的數據:


html:

{%?for?a?in?names?%}
????id={{?a.id?}}:name={{?a.name?}}:sex={{?a.sex?}}
{%?endfor?%}


注意:這里展示的數據必須是單條數據,若是展示整個數據庫的內容必須是逐條,整個取的話會導致出現QuerySet [<test2: test2 object>這種數據。



django:

def?testdb(request):
???
????#list?=?test2.objects.all()
????names?=?test2.objects.filter(id=1)
????print?names
????#return?HttpResponse('this?is?test?select?mysql!')
????return?render_to_response('a.html',locals())??#locals()是獲取整個本地變量


-------------------分割線--------------------



#django經典例子:

from?django.db?import?models????????#導入models模塊

#表名:
class?publisher(models.Model):????????#定義表名為publish
????name=models.CharField(max_length=30)?????#表字段name
????address=models.CharField(max_length=50)??#表字段address
????city=models.CharField(max_length=60)?????#表字段city
????state_province=models.CharField(max_length=30)???
????county=models.CharField(default="CN",max_length=50)
????website=models.URLField()??????????#表字段website,字段類型為地址

表名:
class?author(models.Model):
????first_name=models.CharField(max_length=30)
????last_name=models.CharField(max_length=40)
????email=models.EmailField(blank=True)?????#字段名字為email,字段類型為email

#表名:
class?book(models.Model):
????title=models.CharField(max_length=100)?????#字段名為title,字段類型為vachar
????authors=models.ManyToManyField(author)?????#字段名為author,字段類型為ManyToManyField
????publisher=models.ForeignKey(publisher)?????#關聯外部表publisher
????publication_date=models.DateField()????????#字段名為publication_date,類型為日期類型


python?manage.py?makemigrations?????#查看表有哪些更改
python?manage.py?migrate?????#同步數據庫
#運行上面這條命令出現的錯誤:
#Apply?all?migrations:?admin,?app,?auth,?contenttypes,?sessions
#Running?migrations:
#解決:這個錯誤是因為已經同步過一次數據庫引起的,如果表中的字段要增加,需要添加null=True
#比如:ages=models.CharField(max_length=10,null=True)
#如果是新建一個表,則要刪除app中migrations文件夾(一般不需要)。


#如果需要用戶和密碼,則執行:

python?manage.py?createsuperuser???#創建用戶
python?manage.py?changepassword????#更改密碼



#練習在python交互模式下操作數據庫:

./manage.py?shell??????????????#進入django變量的交互器
from?app.models?import?publisher?#導入publisher數據庫。


#插入一條數據:

p1=publisher(name='qinghua?university',address='wudaokou',city='beijing',state_province='beijing',county='china',website='www.qinghua.com')

p1.name ? ?#查看插入的name

p1.address ?#查看插入的address

p1.save() ? #插入的數據寫入數據庫中


#更新一條數據:

p1.address="qinghualu"
p1.save()



#查看所有的數據

在models模塊中,建表語句下面添加如下:

def?__unicode__(self):
????return?self.name,self.address

然后再去交換窗口查看所有數據:

publisher.objects.all()


#查詢國家等于中國的一條數據:

publisher.objects.filter(country="china")


#查詢出來的數據進行更改:

a=publisher.objects.get(name="beijing")
a.county="USA"
a.save()


#高效的更新數據方式,并且無需save:

publisher.objects.filter(id=1).update(name="qingdaodaxue")



#在瀏覽器中打開后臺管理數據庫界面:

http://192.168.110.106/admin/


賬號就是同步數據庫時創建的用戶名和密碼,登陸進去。

在app下創建一個admin.py的文件

vi admin.py

from?django.contrib?import?admin
from?app.models?import?publisher,author,book
admin.site.register(publisher)
admin.site.register(author)
admin.site.register(book)

完成后,重新打開頁面。



#django中引用bootstrap:

在setting.py中:

MEDIA_ROOT='/root/project/statics/bootstrap/'


在url.py中:

from django.conf import settings

--------------------------------------分割線------------------------------------


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

镇江市| 个旧市| 老河口市| 卫辉市| 北海市| 宁武县| 武威市| 肃宁县| 阜城县| 玉屏| 来凤县| 莱州市| 河北省| 思南县| 延津县| 左云县| 汨罗市| 保德县| 新源县| 民勤县| 东阳市| 宁强县| 湟源县| 易门县| 邳州市| 罗平县| 赤城县| 广灵县| 象山县| 日土县| 繁峙县| 尚义县| 阿拉善右旗| 康平县| 繁昌县| 万安县| 文水县| 宝应县| 长治县| 甘谷县| 永善县|