Django簡單實例
- 2019 年 10 月 6 日
- 筆記
我們在瀏覽器中顯示127.0.0.1:8000/calssinfo
會顯示我們的班級名:
web開發一班
web開發二班
web開發三班
可以點擊我們的web開發一班,進入之後連接變為127.0.0.1:8000/calssinfo/1
並且顯示軟件一班人的名字。
全部步驟
創建一個項目
1、在虛擬環境中創建一個項目:
如何創建虛擬環境就不說了,可以查看昨天的文章:連接
運行:django-admin startproject test2,
創建一個test2項目。
2、創建一個應用(需要切換到test2文件夾下)
python manage.py startapp student
3、用pycharm打開
4、註冊應用
打開settings.py文件,在INSTALLED_APPS中添加student。
5、打開models.py來創建我們的數據庫,寫上:
# 班級表
class classinfo(models.Model):
classname = models.CharField()
# 學生表
class stuinfo(models.Model):
# 名字
stuname = models.CharField(max_length=20)
# 年齡 非負整數類型
stuage = models.PositiveSmallIntegerField()
# 性別
stusex = models.CharField(default='男')
# 班級id 外鍵班級表
classid = models.ForeignKey("classinfo")
# 上面的表都不需要寫id,在幫我們生成表的時候,會自動生成id
寫完上面的models,我們需要生成一個表,分兩步
第一步:生成遷移文件,python manage.py makemigrations
第二部:生成表,python manage.py migrate
6、添加數據:
6.1由於這裡運用的是sqlite數據庫,我們沒學過,不會,我們可以在管理員頁面添加。
配置管理員頁面。
修改setting文件:
LANGUAGE_CODE='zh-hans'
TIME_ZONE = 'Asia/Shanghai'
6.2 添加管理員用戶
執行命令:python manage.py createsuperuser
6.3 在admin.py中添加對classinfo表和stuinfo表的應用。
6.4 重寫models中類的__str__方法。
6.5 啟動項目,添加數據(這裡數據隨便添加)
我在classinfo表中添加了:
web開發一班,web開發二班,web開發三班
在stuinfo表中添加了兩個一班的,連個二班的,三班沒有添加。
7、添加templates模板
創建一個templates,在templates文件夾下創建一個stuinfo文件夾
在stuinfo文件夾下創建classinfo.html和stuinfo.html文件
7.1 在setting.py中配置模本路徑:
'DIRS':[os.path.join(BASE_DIR,'templates')]
7.3 在classinf.html中body中寫上:
<h1>全部班級:</h1>
在stuinfo.html中body中寫上:
<h1>該班級學生:</h1>
8、添加理由設置
在test2下的urls.py中添加:
url(r'^', include('student.urls')),
8.1 在student 下創建 urls.py文件
from django.conf.urls import url
from student import views
urlpatterns = [
url(r'^classinfo$', views.classinfo),
url(r'^classinfo/(d+)', views.stuinfo),
]
9、視圖添加
from student.models import classinfo
def show_classname(request):
c = classinfo.objects.all()
return render(request, 'student/classinfo.html', {'classinfo': c})
def show_stuinfo(request, cid):
c = classinfo.objects.get(id=cid)
s = c.stuinfo_set.all()
return render(request, 'student/stuinfo.html', {'classinfo': c, 'stuinfo': s})
10、修改模板頁面
修改classinfo.html:
<ul>
{% for i in classinfo %}
<li> <a href="/classinfo/{{ i.id }}">{{ i.classname }}</a></li>
{% endfor %}
</ul>
修改stuinfo.html:
<h3>{{ classinfo.classname }}</h3>
<table>
{% for foo in stuinfo %}
<tr>
<td>
{{ foo.stuname }}
</td>
<td>
{{ foo.stuage }}
</td>
<td>
{{ foo.stusex }}
</td>
</td>
</tr>
{% empty %}
該班級沒有人
{% endfor %}
</table>