• Django基础流程


    软件环境

    Pycharm 2018.1

    Python 3.6

    Django 2.0.3

     

    1、新建项目

    直接使用Pycharm的菜单来创建项目,命名为mysite

    mysite
    
      mysite
    
        __init__.py
    
        settings.py
    
        urls.py
    
        wsgi.py
    
      templates
    
      manage.py

    2、新建应用

    使用Pycharmtools菜单下的Run manage.py Task,在弹出的窗口中输入以下命令:

    startapp blog

    blog
    
      migrations
    
      __init__.py
    
      admin.py
    
      apps.py
    
      models.py
    
      tests.py
    
      views.py

    3、将blog应用加到setting.py文件中的INSTALLED_APPS

    INSTALLED_APPS = [
    
      'blog',
    
    ]

    4、编写第一个Model

    编辑blog下的models.py文件,输入:

    from django.db import models
    
    
    class BlogPost(models.Model):
        title = models.CharField(max_length=150)
        body = models.TextField()
        timestamp = models.DateTimeField()
    
        class Meta:
            ordering = ['-timestamp']

     

    5、设置数据库

    一般使用默认的sqlite即可,也可以使用mysql。在settings.py中设置。

     

    6、创建表

    Run manage.py Task中分别执行:

    makemigrations

    migrate

    可以看到表被生成了。

     

    7、创建超级用户(用于登录admin平台)

    Run manage.py Task中执行如下命令:

    createsuperuser

    依次输入用户名,邮箱,密码即可。

     

    8、注册BlogPost应用

    为了在admin管理平台上直接添加、删除文章,我们需要编辑admin.py文件:

    from django.contrib import admin
    
    from blog.models import BlogPost
    
    
    class BlogPostAdmin(admin.ModelAdmin):
        list_display = ['title', 'timestamp']
    
    admin.site.register(BlogPost, BlogPostAdmin)

    9、启动web服务器

    访问http://127.0.0.1/admin

    输入用户名密码即可。

     

    10、创建博客的展示页面

    blog目录下新建templates目录,然后在templates目录下新建archive.html文件。

    {% for post in posts %}
        <h2>{{ post.title }}</h2>
        <p>{{ post.timestamp | date }}</p>
        <p>{{ post.body }}</p>
    {% endfor %}

    11、创建视图函数

    from django.template import loader
    from django.http import HttpResponse
    from blog.models import BlogPost
    
    
    def archive(request):
        posts = BlogPost.objects.all()
        t = loader.get_template('archive.html')
        return HttpResponse(t.render({'posts': posts}))

    12、配置URL路径

    先修改总URL文件:项目下的urls.py文件,与settings.py同级。

    from django.contrib import admin
    from django.urls import path, include
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('blog/', include('blog.urls'))
    ]

    然后修改子URL文件:应用blog下的urls.py文件,没有就新建,与views.py同级。

    from blog.views import archive
    from django.urls import path
    
    urlpatterns = [
        path('', archive)
    ]

    13、启动web服务器,查看效果

    14、编写基础模板,让其他模板来继承

    templates下新建base.html文件,内容如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>基础页面</title>
        <style type="text/css">
            body {
                color: #efd;
                background: #453;
                padding: 0 5em;
                margin: 0;
            }
            h1 {
                padding: 2em 1em;
                background: #675;
            }
            h2 {
                color: #bf8;
                border-top: 1px dotted #fff;
                margin-top: 2em;
            }
            p {
                margin: 1em 0;
            }
        </style>
    </head>
    <body>
        <h1>mysite.example.com</h1>
        {% block content %}
        {% endblock %}
    </body>
    </html>

    15、重新修改archive.html文件

    {% extends 'base.html' %}
    {% block content %}
        {% for post in posts %}
            <h2>{{ post.title }}</h2>
            <p>{{ post.timestamp}}</p>
            <p>{{ post.body }}</p>
        {% endfor %}
    {% endblock %}

    16、模板中的过滤器

    <p>{{ post.timestamp | date }}</p>

    管道后面通过date函数来进行过滤。

     

    17、启动web服务器,检查效果

     

    以上就是使用django开发web应用的一般流程。

  • 相关阅读:
    进程和线程的简单实例
    OpenGL3D演示程序
    c++中dll和lib
    OS锁机制,各种critical section、mutex、实现基础
    dll导出def出错
    负载均衡策略:
    lua读写文件
    C++ Singleton
    Lua模式匹配
    linux 下查找不符合条件的文件并cp
  • 原文地址:https://www.cnblogs.com/t-road/p/9321313.html
Copyright © 2020-2023  润新知