美文网首页
创建django工程详解、初始配置以及模板语言

创建django工程详解、初始配置以及模板语言

作者: xin激流勇进 | 来源:发表于2017-12-27 19:56 被阅读0次

创建Django工程

django-admin startproject [工程名称]

目录结构


image.png

zhihu

  • zhihu # 对整个程序进行配置
    • init
    • settings # 配置文件
    • url # URL对应关系
    • wsgi # 遵循WSIG规范,uwsgi + nginx
  • manage.py # 管理Django程序:
    • python manage.py
    • python manage.py startapp xx
    • python manage.py makemigrations
    • python manage.py migrate

运行Django功能

python manage.py runserver 127.0.0.1:8001


创建app

python manage.py startapp cmdb
python manage.py startapp openstack

文件名 解释
migrations 目录,数据修改表结构时产生日志
admin Django为我们提供的后台管理
apps 配置当前app
models ORM,写指定的类 通过命令可以创建数据库结构
tests 单元测试
views 业务代码

配置模板的路径

TEMPLATES = [{'DIRS': [os.path.join(BASE_DIR, 'templates')],}]


配置静态目录

static 默认静态文件目录

STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static' ),)
<link rel="stylesheet" href="/static/commons.css" />


settings.py

middlerware
注释csrf


定义路由规则

url.py
'login'-->函数名


定义视图函数

app下views.py

            def func(request):
                # request.method   GET / POST
                
                # http://127.0.0.1:8009/home?nid=123&name=alex
                # request.GET.get('',None)   # 获取请求发来的而数据
                
                # request.POST.get('',None)
                
                
                # return HttpResponse("字符串")
                # return render(request, "HTML模板的路径")
                # return redirect('/只能填URL')

模板渲染

特殊的模板语言

  • {{ 变量名 }}
def func(request):
    return render(request, "index.html", {'current_user': "alex"})
        
                    
index.html
                
                <html>
                ..
                    <body>
                        <div>{{current_user}}</div>
                    </body>
                
                </html>
                
                ====> 最后生成的字符串
                
                <html>
                ..
                    <body>
                        <div>alex</div>
                    </body>
                
                </html>
  • For循环
def func(request):
return render
(request, "index.html", {'current_user': "alex", 'user_list': ['alex','eric']})


index.html

<html>
..
<body>
    <div>{{current_user}}</div>
    
    <ul>
        {% for row in user_list %}
        
            {% if row == "alex" %}
                <li>{{ row }}</li>
            {% endif %}
            
        {% endfor %}
    </ul>
    
</body>

</html>
  • 索引
def func(request):
    return render(request, "index.html", {
                'current_user': "alex", 
                'user_list': ['alex','eric'], 
                'user_dict': {'k1': 'v1', 'k2': 'v2'}})

    
index.html

<html>
..
    <body>
        <div>{{current_user}}</div>
        
        <a> {{ user_list.1 }} </a>
        <a> {{ user_dict.k1 }} </a>
        <a> {{ user_dict.k2 }} </a>
        
    </body>

</html>
  • 条件
def func(request):
    return render(request, "index.html", {
                'current_user': "alex", 
                "age": 18,
                'user_list': ['alex','eric'], 
                'user_dict': {'k1': 'v1', 'k2': 'v2'}})

    
index.html

<html>
..
    <body>
        <div>{{current_user}}</div>
        
        <a> {{ user_list.1 }} </a>
        <a> {{ user_dict.k1 }} </a>
        <a> {{ user_dict.k2 }} </a>
        
        {% if age %}
            <a>有年龄</a>
            {% if age > 16 %}
                <a>老男人</a>
            {% else %}
                <a>小鲜肉</a>
            {% endif %}
        {% else %}
            <a>无年龄</a>
        {% endif %}
    </body>

</html>
  • 字典
USER_DICT = {
    'root1': 'toor1',
    'root2': 'toor2',
    'root3': 'toor3',
}

def index(request):
    return render(request, 'index.html', {'user_dict': USER_DICT})

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    {{ user_dict.root1 }}

    <ul>
        {% for row in user_dict.items %}
            <li>{{ row }}</li>
        {% endfor %}

    </ul>
    <ul>
        {% for row in user_dict.keys %}
            <li>{{ row }}</li>
        {% endfor %}

    </ul>
    <ul>
        {% for row in user_dict.values %}
            <li>{{ row }}</li>
        {% endfor %}

    </ul>
</body>
</html>

相关文章

网友评论

      本文标题:创建django工程详解、初始配置以及模板语言

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