django学习笔记

Posted bigbee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django学习笔记相关的知识,希望对你有一定的参考价值。

# 创建Django工程
django-admin startproject 【工程名称】

 1 mysite
 2     - mysite        # 对整个程序进行配置
 3          - init
 4          - settings  # 配置文件
 5          - url       # URL对应关系
 6          - wsgi      # 遵循WSIG规范,uwsgi + nginx
 7     - manage.py     # 管理Django程序:
 8             - python manage.py 
 9             - python manage.py startapp xx
10             - python manage.py makemigrations
11             - python manage.py migrate

# 运行Django功能
python manage.py runserver 127.0.0.1:8000

# 创建app
python manage.py startapp cmdb
python manage.py startapp openstack
python manage.py startapp xxoo....


app:
migrations 数据修改表结构
admin Django为我们提供的后台管理
apps 配置当前app
models ORM,写指定的类 通过命令可以创建数据库结构
tests 单元测试


views 业务代码


1、配置模板的路径

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,
                        ],
                    },
                },
            ]

 

 

2.配置静态目录

1         static
2     
3         STATICFILES_DIRS = (
4             os.path.join(BASE_DIR, static),
5         )
6 
7         
8         <link rel="stylesheet" href="/static/commons.css" />

内容整理
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中

middlerware

# 注释 csrf


6、定义路由规则
url.py

"login" --> 函数名

7、定义视图函数
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‘)

8、模板渲染
特殊的模板语言

-- {{ 变量名 }}
        
                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>

 

以上是关于django学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

Django学习笔记

django学习笔记1

Django 从入门到忘记学习笔记

Django学习笔记(上)

Django后端开发学习笔记URL调度器

Django后端开发学习笔记URL调度器