Django 框架基础

WEB框架

MVC

Model       View       Controller
数据库      模板文件       业务处理

MTV

Model    Template     View
数据库     模板文件    业务处理

Django

安装Django模块

安装第三方模块方法
pip install django

创建Django工程

django-admin startproject mysite[工程名称]

工程目录:

mysite
    - mysite        # 对整个程序进行配置
        - 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:8000

创建app

python manage.py startapp cmdb [app名称]

app目录结构:

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

创建Django工程步骤:

1.创建Django工程
django-admin startproject mysite(工程名)

2.创建APP
cd mysite(进入Django工程所在地目录)
python manage.py startapp cmdb(app名)

3.静态文件路径
在project.settings.py文件最后加上以下代码

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

html文件中导入css/js文件:

<link rel="stylesheet" href="/static/commons.css" />
<script src="/static/jQuery-3.4.0.min.js"></script>

4.模板路径
project.settings.py
'DIRS': [os.path.join(BASE_DIR, 'templates')]

5.settings.py中将中间那条注释掉

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.定义路由规则
url.py:
导入views:
from cmdb import views

写入地址名对应的函数:
path('url地址', views.views中的函数名),

urlpatterns = [
    path('admin/', admin.site.urls),
    path('index/', views.index),
]

7.定义视图函数
views.py:

def func(request):
    request.method   # 获取提交方式( GET/POST)
    # GET提交数据的方式:http://127.0.0.1:8000/home?nid=123&name=bob    
    request.GET.get('',None)   # 获取请求用GET发来的数据
    request.POST.get('',None)  # 获取请求用POST发来的数据
    
    # 以下使用时需要先导入相应模块
    # return HttpResponse("返回字符串")
    # return render(request, "返回HTML模板的路径")
    # return redirect('/只能填URL')

8.模板渲染
通过特殊的模板语言

  • {{ 变量名 }}

views.py:

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

index.html:

<body>
    <div>{{current_user}}</div>
</body>

最后生成的字符串

<body>
    <div>bob</div>
</body>
  • For循环

views.py:

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

index.html:

<body>
    <div>{{current_user}}</div>
    <ul>
        {% for row in user_list %}
            {% if row == "bob" %}
                <li>{{ row }}</li>
            {% endif %}
        {% endfor %}
    </ul>
</body>
  • 索引

views.py:

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

index.html:

    <body>
        <div>{{current_user}}</div>
        <a> {{ user_list.1 }} </a>
        <a> {{ user_dict.k1 }} </a>
        <a> {{ user_dict.k2 }} </a>
    </body>
  • 条件

views.py:

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

index.html:

    <body>
        <div>{{current_user}}</div>
        {% if age %}
            <a>有年龄</a>
            {% if age >= 18 %}
                <a>成年</a>
            {% else %}
                <a>未成年</a>
            {% endif %}
        {% else %}
            <a>无年龄</a>
        {% endif %}
    </body>

猜你喜欢

转载自www.cnblogs.com/dbf-/p/10801437.html
今日推荐