1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        手把手教你使用Django如何連接Mysql

        共 4153字,需瀏覽 9分鐘

         ·

        2021-01-19 09:20

        擊上方“Python爬蟲(chóng)與數(shù)據(jù)挖掘”,進(jìn)行關(guān)注

        回復(fù)“書(shū)籍”即可獲贈(zèng)Python從入門(mén)到進(jìn)階共10本電子書(shū)

        故關(guān)衰草遍,離別自堪悲。

        前言

        這次咱們來(lái)簡(jiǎn)述一下,Django如何連接Mysql。

        默認(rèn)情況下,Django連接的是自己帶的sqlite數(shù)據(jù)庫(kù)。

        這種數(shù)據(jù)庫(kù)好處是方便,不需要遠(yuǎn)程連接,打包項(xiàng)目挪到其他電腦上安裝一下依賴一會(huì)就跑起來(lái)了。

        但是缺點(diǎn)就是,可能會(huì)出現(xiàn)各種莫名其面的問(wèn)題,所以,盡可能在開(kāi)始的時(shí)候,就配置上連接Mysql。


        連接Mysql

        Django連接Mysql分三步

        1. Mysql提前創(chuàng)建好數(shù)據(jù)庫(kù)。

        2. 修改Django的settings.py文件。

        3. 修改項(xiàng)目文件夾下的__init.py文件。

        1.Mysql提前創(chuàng)建好數(shù)據(jù)庫(kù)

        首先,我使用的是本機(jī)的Mysq,并且我在Mysq上創(chuàng)建了一個(gè)school數(shù)據(jù)庫(kù)。

        2.修改Django的settings.py文件

        創(chuàng)建一個(gè)Django項(xiàng)目,在項(xiàng)目文件夾下settings.py下,找到原來(lái)的sqlite配置文件。

        注銷或刪除sqlite配置,添加以下配置。

        復(fù)制以下代碼

        DATABASES = {    'default': {        'ENGINE': 'django.db.backends.mysql',  # 默認(rèn)        'NAME': 'school',  # 連接的數(shù)據(jù)庫(kù)        'HOST': '127.0.0.1',  # mysql的ip地址        'PORT': 3306,  # mysql的端口        'USER': 'root',  # mysql的用戶名        'PASSWORD': 'rootroot'  # mysql的密碼    }}

        3.修改項(xiàng)目文件夾下的__init.py文件

        由于配置了Mysql,所以要替換默認(rèn)的數(shù)據(jù)庫(kù)引擎,在項(xiàng)目文件夾下的__init__.py,添加以下內(nèi)容。

        復(fù)制以下代碼

        import pymysql
        pymysql.install_as_MySQLdb()

        如果沒(méi)有安裝pymysql,記得安裝一下,命令:pip install pymysql。

        遷移數(shù)據(jù)庫(kù)

        如果上述都沒(méi)問(wèn)題了,那我們來(lái)寫(xiě)個(gè)小Demo來(lái)跑一下試試。

        遷移數(shù)據(jù)庫(kù)流程。

        1. 創(chuàng)建app(Django必須依賴app才能創(chuàng)建表)。

        2. settings.py中添加創(chuàng)建的app。

        3. 遷移。

        1.創(chuàng)建app(Django必須依賴app才能創(chuàng)建表)

        首先呢,我們需要在Django中,創(chuàng)建一個(gè)app。命令如下:

        python manage.py startapp web

        2. settings.py中添加創(chuàng)建的app

        創(chuàng)建完之后,我們需要在settings.py中配置一下剛剛創(chuàng)建的app。

        3.遷移

        然后執(zhí)行命令,遷移數(shù)據(jù)庫(kù)到Mysql。

        python manage.py makemigrationspython manage.py migrate

        生成的表。

        會(huì)生成很多其他表,不用管他,只要咱們要的。

        我這里直接手動(dòng)向剛剛創(chuàng)建的表里面添加一些數(shù)據(jù)。

        展示內(nèi)容

        展示內(nèi)容大概分為以下幾個(gè)部分。

        1. 編寫(xiě)url。

        2. 編寫(xiě)視圖(views)。

        3. 編寫(xiě)html(templates)。

        4. 啟動(dòng)web。

        1.編寫(xiě)url

        urls.py

        urlpatterns = [    path('admin/', admin.site.urls),    path('student_list', views.student_list),]

        2.編寫(xiě)視圖(views)

        web/views.py

        def student_list(request):    student_queryset = models.Student.objects.all()    return render(request,"student.html",{"student_queryset":student_queryset})

        3.編寫(xiě)html(templates)

        templates/student.html

        <html lang="en"><head>    <meta charset="UTF-8">    <title>Titletitle>head><body><table border="1">    <thead>    <tr>        <td>idtd>        <td>姓名td>        <td>年齡td>        <td>性別td>        <td>年紀(jì)td>    tr>    thead>    <tbody>    {% for student in student_queryset %}        <tr>            <td>{{ student.id }}td>            <td>{{ student.name }}td>            <td>{{ student.age }}td>            <td>{{ student.gender }}td>            <td>{{ student.grade }}td>        tr>    {% endfor %}
        tbody>table>body>html>

        4.啟動(dòng)web

        命令

        python manage.py runserver 127.0.0.1:8000

        打開(kāi)游覽器,輸入http://127.0.0.1:8000/student_list

        如圖所示!

        總結(jié)

        本次主要講述的是Django如何連接Mysql。并且順帶的做了一個(gè)測(cè)試小Demo,展示一個(gè)web是如何運(yùn)行起來(lái)的。如果基礎(chǔ)不好,我相信后面這些還是很有用的。

        pymysql的版本不建議安裝太高,我的是pymysql版本是0.9.2,Django版本是2.1.5。

        如果你覺(jué)得文章還可以,記得點(diǎn)贊留言支持我們哈。感謝你的閱讀,有問(wèn)題請(qǐng)記得在下方留言噢~

        想學(xué)習(xí)更多關(guān)于Python的知識(shí),可以參考學(xué)習(xí)網(wǎng)址:http://pdcfighting.com/,點(diǎn)擊閱讀原文,可以直達(dá)噢~

        ------------------- End -------------------

        往期精彩文章推薦:

        歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持

        想加入Python學(xué)習(xí)群請(qǐng)?jiān)诤笈_(tái)回復(fù)【入群

        萬(wàn)水千山總是情,點(diǎn)個(gè)【在看】行不行

        /今日留言主題/

        隨便說(shuō)一兩句吧~~

        瀏覽 41
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            青青草原在线视频 | 影帝被强行糟蹋np各种play小说 | 太粗大了潘金莲受不了1一一 | 日韩A毛片 | 国产炮机女冒白浆 | 麻豆一区二区99久久久久 | 抽插视频免费 | 久久做爱 | 女人高潮一级毛片 | 日本A片免费观看 |