一、创建项目:
1. 进入项目目录:`django-admin`:查看可以使用的命令
2. 创建项目:`django-admin startproject myblog`
3. 查看项目可以使用的命令:`python manage.py`
4. 启动自带的小型服务器:`python manage.py runserver`
5. 启动自带的小型服务器并且指定端口:`python manage.py runserver 9999`
二、文件:
myblog/wsgi.py: WSGI(Python Web Server Gateway Interface) Python服务器网关接口,Python应用于Web服务器之间的接口。
myblog/urls.py: URL配置。
myblog/settings.py: 核心配置文件。
myblog/__init__.py: 模块文件。
三、创建应用:
1. 进入manege.py的同级目录
2. `python manage.py startapp blog`
3. 添加应用名(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. 运行服务器,访问“http://127.0.0.1:8000/index/”
四、优化url配置:
> 每次创建应用都要配置url很麻烦也很累赘,我可以进行下面的操作:
1. 注释`myblog/urls.py`的import blog.views as bv
2. 引入include
3. 注释之前的,添加一个:url(r'^blog/', include('blog.urls'))
4. blog下创建urls.py:
```python
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.index),
url(r'^index/$', views.index),
]
```
五、模板Templates的使用:
> 使用了Django模板语言(Django Tamplate Language DTL),可以使用第三方模板,例如jinja2
1. 应用目录下创建文件夹和文件:templates/blog/index.html
2. views.py中:render(request, 'index.html', 字典型数据)
```python
def index(request):
return render(request,'blog/index.html',{'hello':'hello,blog!!!'})
```
3. html中要使用传递过去的data的话,要使用{{hello}}
六、Models的使用:
> 一个模型其实就是一张表,
> ORM(Object Relation Mapping)
6.1 数据的创建:
1. blog/models.py:
```python
class Article(models.Model):
title = models.CharField(max_length=32, default="title")
content = models.TextField()
```
2. 运行:`python manage.py makemigrations app名(可选:例如blog,没有参数的话,默认为所有的应用进行数据迁移)`
3. 运行:`python manage.py migrate` #应用名/migrations/下生成移植文件, 此时可以在sqlte3中看见创建的表和其他的表,其他的表由settings.py里面的INSTALLED_APPS生成的。
4. 查看表创建的语句:`python manage.py sqlmigrate 应用名 0001` # 文件查看SQL语句(Djngo会自动生成主键id int型 不为空 自增的
6.2 数据的展现:
1. views.py中`from . import models`
2. 函数index()内获取数据`article = models.Article.objects.get(pk=1)`。
3. 然后传递给render()函数:return render(request, 'blog/index.html', {'article' : article})
4. 视图'blog/index.html'中使用:`{{ article.title }}`
七、Admin的使用:
1. 创建用户:`python manage.py createsuperuser`
2. 登陆:`http://127.0.0.1:8000/admin/login/`
3. 修改setting.py中LANGUAGE_CODE='zh_Hans' (改成中文界面)
显示我们创建的文章:
1. admin.py中引入`from models import Article`, 并且加入`admin.site.register(Article)`
2. model.py的类中写入一个方法返回title:
```python
def __unicode__(self):
return self.title
```
八、完善我们的博客:
```python
```
```python
```
```python
``````python
```
```python
```
```python
```