python之Django學習筆記(二)---Django從工程創建、app創建到表建模在頁面的顯示
創建工程:
在命令行中切換目錄至需要創建工程的目錄,然後在命令行中輸入如下命令創建djangoTestPro工程
D:\PycharmProjects\untitled\MyTestProject>python D:\Python37\Lib\site-packages\Django-2.1.5-py3.7.egg\django\bin\django-admin.py startproject djangoTestPro
或者如下命令
D:\PycharmProjects\untitled\MyTestProject>django-admin startproject djangoTestPro
因為使用的pip install django安裝的,django-admin.py不能直接使用,但可以使用django-admin這個命令
可以看到創建了如下目錄結構的工程
下面介紹下這些文件的作用:
settings.py:工程的一些配置信息
urls.py:用來匹配接收的url,轉換為函數後再到各個app的views.py中查對應函數
wsgi.py:路由選擇
manage.py:創建工程後,命令都是通過這個文件來執行
創建APP:
在命令行中切換至djangoTestPro工程中,然後輸入如下命令創建djangoTestApp
D:\PycharmProjects\untitled\MyTestProject\djangoTestPro>python manage.py startapp djangoTestApp
可以看到創建了如下APP的目錄
下面介紹下app中的文件作用:
admin.py:控制app中的樣式
apps.py:
models.py:數據庫建模文件
tests.py:單元測試使用
views.py:url函數,返回對應的url給前端
一個工程裏面支持創建N個app,創建app之後需要在工程的settings.py中添加對應的app,不然會找不到這個app,需要在工程的settings.py中增加對應的app:
創建數據庫:
在app的models.py中創建一個數據庫(sqlite3)如下代碼
SEX_CHOICE = ( (‘F‘,‘Female‘), (‘M‘,‘male‘) ) # Create your models here. class Student(models.Model): No = models.CharField(‘學號‘,max_length = 10) Name = models.CharField(‘姓名‘,max_length = 20) Sex = models.CharField(‘性別‘,max_length = 1,choices = SEX_CHOICE,default = ‘M‘) Age = models.IntegerField(‘年齡‘)
然後在命令行中輸入以下命令來生成數據庫配置文件
D:\PycharmProjects\untitled\MyTestProject\djangoTestPro>python manage.py makemigrations
Migrations for ‘djangoTestApp‘:
djangoTestApp\migrations\0001_initial.py
- Create model student
看到已經創建了student模型,這個文件在app的migrations目錄下,這時根據配置文件寫入到數據庫中:
D:\PycharmProjects\untitled\MyTestProject\djangoTestPro>python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, djangoTestApp, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying djangoTestApp.0001_initial... OK
Applying sessions.0001_initial... OK
沒有報錯誤,則表示已經在數據庫中增加了這個表
創建超級管理員:
在命令行中輸入下面命令創建超級管理員
D:\PycharmProjects\untitled\MyTestProject\djangoTestPro>python manage.py createsuperuser Username (leave blank to use ‘18106179‘): watertaro Email address: 70907583@qq.com Password: Password (again): Superuser created successfully.
按照步驟操作即可完成超級管理員的創建
啟動服務:
D:\PycharmProjects\untitled\MyTestProject\djangoTestPro>python manage.py runserver Performing system checks... System check identified no issues (0 silenced). March 19, 2019 - 15:36:10 Django version 2.1.5, using settings ‘djangoTestPro.settings‘ Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK.
沒有錯誤即啟動成功,這時就可以根據上述給出的地址http://127.0.0.1:8000來訪問了,這個地址是默認的地址,只是一個訪問頁面
如果要使用其他端口啟動,可以使用如下命令:
D:\PycharmProjects\untitled\MyTestProject\djangoTestPro>python manage.py runserver 127.0.0.1:8800
若當前環境有多個IP且多個IP都可以訪問,可以寫成如下:
D:\PycharmProjects\untitled\MyTestProject\djangoTestPro>python manage.py runserver 0.0.0.0:8800
可以到工程的urls.py中查看配置的url,默認只有一個admin/,我們可以使用http://127.0.0.1:8000/admin/來訪問:
使用創建的超級管理員登入進去,發現沒有創建的表student,因為表創建後還需要註冊
註冊表:
在工程的admin.py中加入如下代碼
from django.contrib import admin from .models import Student # Register your models here. admin.site.register(student)
其實就增加了倆行,一行是導入Student,一行是註冊student表,這時再打開http://127.0.0.1:8000/admin就可以看到student
新增加一個student信息後,只顯示了student object,感覺很醜
可以在admin.py中指定顯示哪些列,代碼如下:
from django.contrib import admin from .models import student # Register your models here. class StudentAdmin(admin.ModelAdmin): list_display = (‘No‘,‘Name‘,‘Sex‘,‘Age‘,) admin.site.register(student,StudentAdmin)
添加好代碼後,刷新頁面顯示如下(是不是好看多了?)
從上面操作來看,用戶請求後先匹配到url(urls.py),然後找到對應函數,通過函數(views.py)到數據庫中(models.py)查找數據,然後返回給前端
python之Django學習筆記(二)---Django從工程創建、app創建到表建模在頁面的顯示