Django开发web站点步骤-创新互联

1、创建Django工程

站在用户的角度思考问题,与客户深入沟通,找到三河网站设计与三河网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:做网站、网站制作、企业官网、英文网站、手机端网站、网站推广、域名注册、网络空间、企业邮箱。业务覆盖三河地区。
django-admin startproject 工程名

2、创建App

cd 工程名
 python manage.py startapp cmdb

3、静态文件配置

编辑 project.settings.py,追加以下内容

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

4、模板路径配置

DIRS ==> (os.path.join(BASE_DIR, 'templates'),)

5、settings中,注释 csrf

MIDDLEWARE_CLASSES = (
    #'django.middleware.csrf.CsrfViewMiddleware',
)

6、定义路由规则,在url.py中定义用户访问的url由哪个函数来处理请求

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

7、定义视图函数,在views.py中定义函数

def func(reuest):
    # request.method GET/POST
    # http://127.0.0.1:8000/home?nid=123&name=bob
    # request.GET.get('',None)  #获取请求发来的数据
    # request.POST.get('',None)
    # return HttpResponse("字符串")
    # return Render(request, 'HTML模板路径',{"user_list": USER_LIST})
    # return redirect('只能填URL,例如:/home')

8、模板渲染

Django特殊的模板语言,例如:

--变量名取值--

在views.py中定义好变量和对应的值,在template的html页面中通过` var_name `的方式来取值

def func(request):
   return render(request,"index.html",{'current_user': "bob"})

index.html



    
{{ current_user }}

--For循环取值--

在views.py中定义好列表和值,在template的html页面中通过{{ for循环 }}的方式来取值

def func(request):
    return render(request,"index.html",{
    'current_user': "bob",
    'user_list':['bob','aaa','bbb']})

index.html


    
{{ current_user }}
    
        {% for row in user_list %}         
  • {{ row }}
  •     <% endfor %>     

--索引取值--

在views.py中定义好字典和值,在template的html页面中通过` var_name`.`key `的方式来取值

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



    
{{ current_user }}
    {{ user_list.1 }}  //对于列表直接用索引取值     {{ user_dict.k1 }} //对于字典,要用key取值     {{ user_dict.k2 }}

--循环字典--

模板语法除了而已循环列表外,也可以循环字典,用法和python基本一样,只不过循环时,不要加括号()

USER_DICT = {
    'K1': 'V1',
    'K2': 'V2',
    'K3': 'V3',
    'K4': 'V4'
}


例1、循环key
{% for k in USER_DICT.keys %}
    
  • {{ k }}
  • {% endfor %} 例2、循环键值对 {% for item in USER_DICT.items %}     
  • {{ item }}
  • {% endfor %} 例3、循环values {% for v in USER_DICT.values %}     
  • {{ v }}
  • {% endfor %} 例4、循环values {% for k,v in USER_DICT.items %}     
  • {{ k }}-{{ v }}
  • {% endfor %}

    --条件取值--

    {% if %}

        {% if %}

        {% endif %}

        {% else%}

    {% else %}

    {% endif %}

    def func(request):
        return render(request,"index.html",{
            'current_user': "bob", 
            'age': 18,
            'user_list': ['bob','aaa','bbb'],
            'user_dict': ['k1': 'v1', 'k2': 'v2']
            })
            
    index.html
    
    
    
    
        
    {{ current_user }}
        {{ user_list.1 }}  //对于列表直接用索引取值     {{ user_dict.k1 }} //对于字典,要用key取值     {{ user_dict.k2 }}     {% if age %}     有年龄         {% if age > 16 %}             老男人         {% else %}             小鲜肉         {% endif %}     {% else %}         无年龄     {% endif %}

    模板的工作流程:

    • 1、当用户请求通过url发送请求后,django路由将请求交给视图函数,

    • 2、然后视图函数会先去取模板,

    • 3、将模板中有` current_user `这样的变量与视图中定义的值进行渲染,渲染后将模板内容转换成字符串

    • 4、将生成后字符串整体返回给用户

    过滤器

    模板过滤器是变量显示前转换它们的值的方式,看起来像下面这样

    {{ name|lower }}

    这将显示通过lower过滤器过滤后` name `变量的值,它将文本转换成小写
    使用(|)管道来申请一个过滤器

    过滤器可以串成链,即一个过滤器的结果可以传向下一个,下面是escape文本内容然后把换行转换成p标签的习惯用法

    {{ my_text|escape|linebreaks }}

    更过关于Django模板的资料,请访问:

    http://blog.csdn.net/zhangxinrun/article/details/8095118/

    创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


    文章标题:Django开发web站点步骤-创新互联
    网站URL:http://pwwzsj.com/article/ghdep.html