• 内容整理以及补充


    1、创建Django工程

    django-admin startproject  工程名
    

    2、创建app

    cd 工程名
    python mange.py  startapp app名 
    

    3、静态文件

    project.settings.py =>

    STATICFILES_DIRS = [
                          os.path.join(BASE_DIR,"static"),
                       ]
    

     4、模板路径

    project.settings.py =>TEMPLATES中增加 DIRS

    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [os.path.join(BASE_DIR,'templates')],
            'APP_DIRS': True,
            'OPTIONS': {
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
    
                ],
            },
        },
    ]
    

     5、settings中

     middlerware #注释csrf

    MIDDLEWARE = [
        'django.middleware.security.SecurityMiddleware',
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.middleware.common.CommonMiddleware',
        # 'django.middleware.csrf.CsrfViewMiddleware',
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'django.contrib.messages.middleware.MessageMiddleware',
        'django.middleware.clickjacking.XFrameOptionsMiddleware',
    ]
    

     6、定义路由规则

    project下的url.py 
                login -->函数名
    

    7、定义视图函数

     app下的views.py

    def func(request):
            #request.method   GET /POST方法
     
            #http:127.0.0.1:8000/home?nid=123&name=zhangqigao
            #request.GET.get('',None)  #获取get请求发来的数据
     
            #request.POST.get('',None)  #获取post请求发来的数据
             
            # return HttpResponse("字符串")
            # return render(request,"HTML模板路径")
            # return redirect('/只能填写url')  #url前面的斜杠 / 代表ip+端口,本地的话就是:127.0.0.1:8000,所以不能省略
    

     8、模板渲染

    取变量名

    {{变量名}}

    视图函数 view.py,第三个参数传入一个字典

    def func(request):
        return render(request,"index.html",{'current_user':"ccc"})  #这边传入字典
    

     html模板,取变量的值current_user

    <div>{{current_user}}</div>   #这边获取值,{{key值}}
    
    总结

    视图函数做的三件事情,

    1、先把html模板拿过来。

    2、再把值和模板进行渲染

    3、将替换好的值的html,生成新的字符串,整体返回给用户

    这个替换是什么时候做的呢?是返回给用户的一刹那之前,做的替换。所以浏览器拿到字符串的时候,永远是被渲染完毕的字符串(已完成替换)。

    for循环

    user_list传一个列表

    def func(request):
        return render(request,"index.html",{'current_user':"ccc",'user_list':['alex','eric']}) 
    

     这里要循环user_list

    <ul>
        {% for row  in user_list %}
            <li>{{row}}</li>
        {% ednfor %}
    </ul>
    
     索引

    def func(request):
        return render(request,
        "index.html",{'current_user':"ccc",
        'user_list':['alex','eric'],
        'user_dict':{'k1':'v1','k2':'v2'}}) 

    index.html的内容如下:
    #列表的根据索引去值方法
    <a>{{user_list.0}}</a>
    <a>{{user_list.1}}</a>
     
    #字典根据索引取值方法
    <a>{{user_dict.k1}}</a>
    <a>{{user_dict.k2}}</a>
    条件

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

    index.html内容如下:
    嵌套if....elif...else....:
    {% if age %}    #age为18,所以为true
        <a>有年龄</a>
        {% if age > 16 %}  #比较大小
            <a>老男人</a>
       {% elif age >18 %}
         <a>小男人</a>
        {% else %}
            <a>小鲜肉</a>
        {% endif %}
    {% else %}
        <a>无年龄</a>
    {% endif %}
    

     if语句嵌套在for循环当中:

     
    <ul>
           {% for row in user_list %}
                  {% if row == "zhangqigao" %}
                           <li>{{row}}</li>
                  {% endif %}
           {% endfor %}
    </ul>
    
  • 相关阅读:
    zookeeper集群搭建2.7
    hadoop集群环境搭建
    Kettle(6.0) 参数方式连接数据库
    kettle数据同步的5中方案
    kettle 合并记录步骤中的 关键字段和 比较字段的说明
    KETTLE常见问题和优化
    Hbase与Oracle的比较
    EHCache
    hdu2014 青年歌手大奖赛_评委会打分【C++】
    hdu2013 蟠桃记【C++】
  • 原文地址:https://www.cnblogs.com/meihan/p/12516212.html
Copyright © 2020-2023  润新知