Django

一、创建项目:

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
```

你可能感兴趣的:(Django)