Django

作者: 陈走路Aston | 来源:发表于2017-04-09 21:19 被阅读6次

    一、创建项目:

    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

          本文链接:https://www.haomeiwen.com/subject/jpljattx.html