一、創(chuàng)建項(xiàng)目:
1. 進(jìn)入項(xiàng)目目錄:`django-admin`:查看可以使用的命令
2. 創(chuàng)建項(xiàng)目:`django-admin startproject myblog`
3. 查看項(xiàng)目可以使用的命令:`python manage.py`
4. 啟動(dòng)自帶的小型服務(wù)器:`python manage.py runserver`
5. 啟動(dòng)自帶的小型服務(wù)器并且指定端口:`python manage.py runserver 9999`
二、文件:
myblog/wsgi.py: WSGI(Python Web Server Gateway Interface) Python服務(wù)器網(wǎng)關(guān)接口,Python應(yīng)用于Web服務(wù)器之間的接口。
myblog/urls.py: URL配置。
myblog/settings.py: 核心配置文件。
myblog/__init__.py: 模塊文件。
三、創(chuàng)建應(yīng)用:
1. 進(jìn)入manege.py的同級(jí)目錄
2. `python manage.py startapp blog`
3. 添加應(yīng)用名(blog)到settings.py的INSTALLED_APPS里
4. blog/views.py文件編寫:
```python
from django.http import HttpResponse
def index(request):
return HttpResponse("Halo")
```
5. myblog/urls.py文件編寫:
```python
import blog.views as bv
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^index/', bv.index), # 添加
]
```
6. 運(yùn)行服務(wù)器,訪問(wèn)“http://127.0.0.1:8000/index/”
四、優(yōu)化url配置:
> 每次創(chuàng)建應(yīng)用都要配置url很麻煩也很累贅,我可以進(jìn)行下面的操作:
1. 注釋`myblog/urls.py`的import blog.views as bv
2. 引入include
3. 注釋之前的,添加一個(gè):url(r'^blog/', include('blog.urls'))
4. blog下創(chuàng)建urls.py:
```python
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.index),
url(r'^index/$', views.index),
]
```
五、模板Templates的使用:
> 使用了Django模板語(yǔ)言(Django Tamplate Language DTL),可以使用第三方模板,例如jinja2
1. 應(yīng)用目錄下創(chuàng)建文件夾和文件:templates/blog/index.html
2. views.py中:render(request, 'index.html', 字典型數(shù)據(jù))
```python
def index(request):
return render(request,'blog/index.html',{'hello':'hello,blog!!!'})
```
3. html中要使用傳遞過(guò)去的data的話,要使用{{hello}}
六、Models的使用:
> 一個(gè)模型其實(shí)就是一張表,
> ORM(Object Relation Mapping)
6.1 數(shù)據(jù)的創(chuàng)建:
1. blog/models.py:
```python
class Article(models.Model):
title = models.CharField(max_length=32, default="title")
content = models.TextField()
```
2. 運(yùn)行:`python manage.py makemigrations app名(可選:例如blog,沒(méi)有參數(shù)的話,默認(rèn)為所有的應(yīng)用進(jìn)行數(shù)據(jù)遷移)`
3. 運(yùn)行:`python manage.py migrate` #應(yīng)用名/migrations/下生成移植文件, 此時(shí)可以在sqlte3中看見(jiàn)創(chuàng)建的表和其他的表,其他的表由settings.py里面的INSTALLED_APPS生成的。
4. 查看表創(chuàng)建的語(yǔ)句:`python manage.py sqlmigrate 應(yīng)用名 0001` # 文件查看SQL語(yǔ)句(Djngo會(huì)自動(dòng)生成主鍵id int型 不為空 自增的
6.2 數(shù)據(jù)的展現(xiàn):
1. views.py中`from . import models`
2. 函數(shù)index()內(nèi)獲取數(shù)據(jù)`article = models.Article.objects.get(pk=1)`。
3. 然后傳遞給render()函數(shù):return render(request, 'blog/index.html', {'article' : article})
4. 視圖'blog/index.html'中使用:`{{ article.title }}`
七、Admin的使用:
1. 創(chuàng)建用戶:`python manage.py createsuperuser`
2. 登陸:`http://127.0.0.1:8000/admin/login/`
3. 修改setting.py中LANGUAGE_CODE='zh_Hans' (改成中文界面)
顯示我們創(chuàng)建的文章:
1. admin.py中引入`from models import Article`, 并且加入`admin.site.register(Article)`
2. model.py的類中寫入一個(gè)方法返回title:
```python
def __unicode__(self):
return self.title
```
八、完善我們的博客:
```python
```
```python
```
```python
``````python
```
```python
```
```python
```
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。