1. 程式人生 > >Python學習---Django的基礎學習180116

Python學習---Django的基礎學習180116

size log smart 啟動 一個 flush play 取數 class

Django創建數據庫操作

django流程之model實例

settigs.py:更改Django2.0.1的配置,更新為之前的路徑配置

‘DIRS‘: [os.path.join(BASE_DIR, ‘templates‘)],  # 設置templates的路徑為Django以前版本
# ‘DIRS‘: [],      # 註釋掉該行,此為Django 2.0.1最新版本
# ‘django.middleware.csrf.CsrfViewMiddleware‘,

views.py

# Create your tests here.
from django.shortcuts import render, HttpResponse
from blog import models
def userInfo(request):
    # 這裏需要判斷前臺數據提交的方法是POST還是GET的[大寫]
    if request.method == "POST":
        get_username = request.POST.get("username", None)
        get_sex = request.POST.get("sex", None)
        get_email = request.POST.get("email", None)
        models.UserInfo.objects.create(   # 進行ORM映射,同時Insert數據到數據庫
            username=get_username,
            sex=get_sex,
            email=get_email
        )
    user_list = models.UserInfo.objects.all() # 獲取數據庫裏面的數據
    print(user_list)
    return render(request, ‘index.html‘, {"user_list": user_list})  # 用{}傳遞一個對象給前端

mysite2/urls.py

from django.contrib import admin
from django.urls import path
from blog import views

urlpatterns = [
    path(‘admin/‘, admin.site.urls),
    path(r‘userInfo/‘, views.userInfo),  # 將路徑名跟函數進行映射
]

models.py :創建ORM映射模版

from django.db import models
class UserInfo(models.Model):
    username = models.CharField(max_length=64)  # 創建數據庫字段,並設置長度為64k
    sex = models.CharField(max_length=64)
    email = models.CharField(max_length=64)

templates/index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
</head>
<body>
    <form method="post" action="/userInfo/" name="userInfo">
        <p>姓名<input type="text" name="username"></p>
        <p>性別<input type="text" name="sex"></p>
        <p>郵箱<input type="text" name="email"></p>
        <p><input type="submit" value="提交"></p>
    </form><hr><hr>
    <table border="1">
        <tr>
            <th>姓名</th>
            <th>性別</th>
            <th>郵箱</th>
        </tr>
        {% for i in user_list %}    {#Django裏面封裝的模版語法,用於for循環#}
            <tr>
                {# 這裏是變量,所以需要2個{}來進行變量引用[規定的] #}
                <th>{{ i.username }}</th>  {# 這裏類似字典的取值 i[username] #}
                <th>{{ i.sex }}</th>       {# 這裏類似i[sex] #}
                <th>{{ i.email }}</th>     {# 這裏類似i[email] #}
            </tr>
        {% endfor %}                {# 註意結束for循環 #}
    </table>
</body>
</html>

創建數據庫以及同步數據庫數據

生成同步數據庫的腳本:python manage.py makemigrations

同步數據庫: python manage.py migrate

技術分享圖片

註意1:如果安裝完成後打不開DB數據庫,是因為沒有安裝連接數據庫的jar包,PyCharm可以幫助我們進行安裝

技術分享圖片

註意2:在開發過程中,數據庫同步誤操作之後,難免會遇到後面不能同步成功的情況,解決這個問題的一個簡單粗暴方法是把migrations目錄下的腳本(除__init__.py之外)全部刪掉,再把數據庫刪掉之後創建一個新的數據庫,數據庫同步操作再重新做一遍。

settigs.py: 默認的數據庫

技術分享圖片

註意3:重啟Django服務,查看頁面數據

技術分享圖片

django之登錄默認的admin界面

創建項目好了以後我們會發現有一個默認的admin的函數,對應的就有個URL的地址:http://127.0.0.1:8080/admin/

當我們訪問http://127.0.0.1:8080/admin/時,會出現:

技術分享圖片

我們需要為進入這個項目的後臺創建超級管理員:python manage.py createsuperuser,設置好用戶名和密碼後便可登錄啦!

後臺輸入命令創建用戶:python manage.py createsuperuser

技術分享圖片

技術分享圖片

其他參考

清空數據庫:

python manage.py  flush

查詢某個命令的詳細信息:
django-admin.py  help  startapp

admin 是Django 自帶的一個後臺數據庫管理系統。
終端上輸入python manage.py 可以看到詳細的列表,在忘記子名稱的時候特別有用

python manage.py 

啟動當前項目的django交互界面 :

python manage.py  shell

註意:這個命令和直接運行 python 進入 shell 的區別是:你可以在這個 shell 裏面調用當前項目的 models.py 中的 API,對於操作數據,還有一些小測試非常方便。

技術分享圖片

Python學習---Django的基礎學習180116