码迷,mamicode.com
首页 > 其他好文 > 详细

Django 框架基础

时间:2019-05-02 09:39:34      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:middle   one   com   template   commons   user   sgi   dex   redirect   

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>

Django 框架基础

标签:middle   one   com   template   commons   user   sgi   dex   redirect   

原文地址:https://www.cnblogs.com/dbf-/p/10801437.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!