Python之路58-Django安装配置及一些基础知识点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python之路58-Django安装配置及一些基础知识点相关的知识,希望对你有一定的参考价值。

目录

一、安装Django

二、创建工程

三、创建app

四、静态文件

五、模板路径

六、设置settings

七、定义路由

八、定义视图

九、渲染模板

十、运行


Django是一款Python的web框架


一、安装Django

pip3 install django

安装完成后C:\Python35\Script下面会生成django-admin


二、创建工程

django-admin startproject 工程名

如django-admin startproject mysite

mysite

    - mysite

        __init__.py

        settings.py    # 配置文件

        urls.py        # url对应关系

        wsgi.py        # 遵循wsgi规范,实际生产环境uwsgi+nginx

    manage.py          # 管理django程序


三、创建app

python manage.py startapp cmdb

python manage.py startapp xxoo...

app目录

    - migrations    数据修改表结构记录

        admin.py    django为我们提供的后台管理

        apps.py     配置当前app

        models.py   ORM,写指定的类,通过命令可以创建数据结构

        tests.py    单元测试

        views.py    业务逻辑代码


四、静态文件

配置静态文件目录

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

五、模板路径

配置模板的路径

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

 


六、设置settings

注释掉

‘django.middleware.csrf.CsrfViewMiddleware‘


七、定义路由

from django.conf.urls import url
from django.contrib import admin

from cmdb import views

urlpatterns = [
    url(r‘^admin/‘, admin.site.urls),
    # url(r‘^index/‘, views.index),
    url(r‘^login‘, views.login),
    url(r‘^home‘, views.home),
]

八、定义视图

from django.shortcuts import render

# Create your views here.
from django.shortcuts import HttpResponse
from django.shortcuts import render
from django.shortcuts import redirect


def index(request):
    return HttpResponse("<h1>CMDB</h1>")


def login(request):
    # request包含用户提交的所有信息
    # 获取用户提交方法
    # print(request.method)

    error_msg = ""

    if request.method == "POST":
        # 获取用户通过POST提交的数据
        username = request.POST.get("username", None)
        password = request.POST.get("password", None)
        if username == "root" and password == "123":
            # 去跳转到百度
            # return redirect("http://www.baidu.com")
            # 跳转到home
            return redirect("/home")
        else:
            # 用户名密码不匹配
            error_msg = "用户名或密码错误"
    return render(request, "login.html", {"error_msg": error_msg})

USER_LIST = [
    {"username": "alex", "email": "sdasda", "gender": "男"},
    {"username": "eric", "email": "sdasda", "gender": "男"},
    {"username": "seven", "email": "sdasda", "gender": "男"},
]
# for index in range(20):
#     temp = {"username": "alex" + str(index), "email": "sdasda", "gender": "男"}
#     USER_LIST.append(temp)


def home(request):
    if request.method == "POST":
        # 获取用户提交的数据 POST请求中
        username = request.POST.get("username")
        email = request.POST.get("email")
        gender = request.POST.get("gender")
        temp = {"username": username, "email": email, "gender": gender}
        USER_LIST.append(temp)
    return render(request, "home.html", {"user_list": USER_LIST})

 def func(request):
    # request.method    GET/POST
    # request.GET.get("", None) 获取请求发来的数据
    # request.POST.get("", None)    获取请求提交的数据

    return HttpResponse("字符串")
    return render(request, "html模板路径")
    return redirect("/url路径")

九、渲染模板

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body style="margin: 0;">
    <div style="height: 48px;background-color: #dddddd;"></div>
    <div>
        <form action="/home" method="POST">
            <input type="text" name="username" placeholder="用户名"/>
            <input type="text" name="email" placeholder="邮箱"/>
            <input type="text" name="gender" placeholder="性别"/>
            <input type="submit" value="添加"/>
        </form>
    </div>
    <div>
        <table>
            {%  for row in user_list %}
            <tr>
                <td>{{ row.username }}</td>
                <td>{{ row.gender }}</td>
                <td>{{ row.email }}</td>
            </tr>
            {% endfor %}
        </table>
    </div>
</body>
</html>


模板渲染

变量 {{ 变量名 }}

def func(request):
    return render(request, "html模板", {"current_user": "alex"})
<!-- 模板 -->
<html>
<body>
    <div>{{ current_user }}</div>
</body>
</html>

<!-- 渲染后生成的页面 -->
<html>
<body>
    <div>alex</div>
</body>
</html>


条件判断 {% if 条件 %}{% else %}{% endif %}

def func(request):
       return render(request, "html模板路径", {"current_user": "alex",
        "user_list": ["alex", "eric"],
        "age": 18})
{% if age %}
   <a>有年龄</a>
   {% if age > 16 %}
       <a>老男人</a>
   {% else %}
       <a>小鲜肉</a>
   {% endif %}
{% else %}
   <a>无年龄</a>
{% endif %}


for循环 {% for row in user_list %}{% endfor %}

def func(request):
       return render(request, "html模板路径", {"current_user": "alex",
        "user_list": ["alex", "eric"]})
<html>
<body>
    <div>{{ current_user }}</div>
    <ul>
        {% for row in user_list%}
        <li>{{ row }}</li>
        {% endfor %}
    </ul>
</body>
</html>

 



十、运行

python manage.py runserver 127.0.0.1:8000

本文出自 “八英里” 博客,请务必保留此出处http://5921271.blog.51cto.com/5911271/1926729

以上是关于Python之路58-Django安装配置及一些基础知识点的主要内容,如果未能解决你的问题,请参考以下文章

Python全栈之路Day11

python学习之路-1 python简介及安装方法

nodejs之路-[0]安装及简易配置

敏捷之路 C++ (一) jenkins配置-VS工程自动编译基本配置

Linux学习之路-Nginx安装及配置文件篇23---20180210

Python踩坑之路-Python-3.6 安装pycrypto 2.6.1各种疑难杂症及解决方案