zoukankan      html  css  js  c++  java
  • django -- 安装django

    安装

    通过cmd进行安装

    pip3 install django==1.11.11

    创建django项目

    通过命令行进行创建

    下面的命令创建了一个名为"mydjango"的Django 项目:

    django-admin startproject mydjango

    说明:

    在哪个目录下创建的,就会在哪里生成这个项目

    在pycharm里创建

    目录介绍

    MyDjango/
    ├── manage.py  # 管理文件
    └── MyDjango  # 项目目录
        ├── __init__.py
        ├── settings.py  # 配置
        ├── urls.py  # 路由 --> URL和函数的对应关系
        └── wsgi.py  # runserver命令就使用wsgiref模块做简单的web server

    命令行运行

    在django项目的根目录下(就是我们起的项目名下),执行下面的命令

    python manage.py runserver

    如果看到如下信息则启动成功

    然后我们用浏览器去打开上面的地址,大家会看到如下的页面

    如果我们想在启动的时候自定义端口号,可以在执行命令的时候加上端口号

    python manage.py runserver 8080

    pycharm中启动

    如果想更改端口号,则点击向下的箭头更改

    settings下面的配置文件

    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [os.path.join(BASE_DIR, 'templates')] #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',
                ],
            },
        },
    ]

    这个里面定义了模版文件的路径,也就是HTML文件的路径,我们引用的HTML文件,都会在这里面去找,pycharm创建的会自动帮我们加上下面的这句代码,如果通过命令创建的项目,则需要手动去加

    'DIRS': [os.path.join(BASE_DIR, 'templates')],  # templates文件夹路径

    静态文件相关:

    STATIC_URL = '/static/'  # HTML中使用的静态文件夹前缀
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR,'static')  # 静态文件存放路径
    ]

    这里面可以放CSS文件,JS文件,image文件等

     写一个登录页面

    首先要有一个登录的html文件,上面也说了templates是放html文件的,我们把文件放到里面

    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
        <meta http-equiv="content-Type" charset="UTF-8">
        <meta http-equiv="x-ua-compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Title</title>
        <link rel="stylesheet" href="/static/bootstrap-3.3.7/css/bootstrap.css">
        <link rel="stylesheet" href="/static/font-awesome-4.7.0/css/font-awesome.css">
        <style>
            body {
                background-color: #eeeeee;
            }
    
            .login-box {
                margin-top: 50px;
            }
    
        </style>
    </head>
    <body>
    <div class="container">
        <div class="row">
            <div class="col-md-4 col-md-offset-4 login-box">
                <form class="form-horizontal">
                    <div class="col-sm-9">
                        <h2 class="text-center">请登录</h2>
                    </div>
    
                    <div class="form-group">
    
                        <div class="col-sm-9">
                            <div class="input-group margin-bottom-sm">
                                <label for="email" class="hidden">邮箱</label>
                                <span class="input-group-addon"><i class="fa fa-envelope-o fa-fw"></i></span>
                                <input class="form-control" type="text" id="email" placeholder="您的邮箱地址">
                            </div>
                            <span class="help-block"></span>
                        </div>
                    </div>
    
                    <div class="form-group">
                        <div class="col-sm-9">
                            <div class="input-group">
                                <label for="password" class="hidden">密码</label>
                                <span class="input-group-addon"><i class="fa fa-key fa-fw"></i></span>
                                <input class="form-control" type="password" id="password" placeholder="请输入密码">
                            </div>
                            <span class="help-block"></span>
                        </div>
                    </div>
    
                    <div class="form-group">
                        <div class="col-sm-9">
                            <div class="checkbox">
                                <label>
                                    <input type="checkbox"> 记住我
                                </label>
                            </div>
                        </div>
                    </div>
    
                    <div class="form-group">
                        <div class="col-sm-9">
                            <button type="button" id="b1" class="btn btn-block btn-primary">登录</button>
                        </div>
                    </div>
                </form>
            </div>
        </div>
    </div>
    
    <script src="/static/jquery-3.3.1.js"></script>
    <script>
        $("#b1").click(function () {
            $("input:not([type='checkbox'])").each(function () {
                // 判断值为不为空
                if ($(this).val().length === 0) {
                    // 展示错误提示
                    var errMsgPrefix = $(this).prev().prev().text();
                    $(this).parent().next().text(errMsgPrefix + "不能为空");
                    $(this).parent().parent().parent().addClass("has-error");
                }
            });
        });
    
        // 给输入框绑定获取焦点的事件
        $("input:not([type='checkbox'])").focus(function () {
            // 清空错误提示
            $(this).parent().next().text("");
            // 移除父标签的has-error
            $(this).parent().parent().removeClass("has-error");
        });
    </script>
    </body>
    </html>
    View Code

    上面的文件用到了jQuery和bootstrap,我们创建个static目录,把这些静态文件放到里面,如下

    记住,一定要在setting里面更改STATICFILES_DIRS,这样django才会在static目录下去找这些文件,然后我们把login.html里引用到的静态文件导入就行

    STATIC_URL = '/static/'  # HTML中使用的静态文件夹前缀
    
    #静态文件的实际存放路径
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR,'static')  # 静态文件存放路径
    ]

    接下来我们去修改url.py文件里的数据

    urls.py是url分发器,路由配置文件。在这里面我们会构建起网站的目录,简单来说我们要做的事就是告诉Django,对于某段url该调用哪段代码。

    from . import views
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^login/', views.login),
    ]
    '^login/'路径,就是我们在网站上域名后面的路径,
    views.login表示去views找login函数

    现在还没有login函数,我们去MyDjango下创建一个views.py的文件,在里面创建一个login的函数,注意,views.py和url.py在同一个层级下,在views.py里写下如下的代码
    from django.shortcuts import render
    
    def login(request):
        return render(request,'login.html')

    代码解释:

    首先我们导入了render方法,这个方法可以把html文件通过固定的格式返回给浏览器,所有跟请求相关的数据都保存在request里面,

    render(request,'login.html')就是在templates下找到login.html文件,并返回给调用者
    然后我们启动服务,去访问login网站,我的路径是http://127.0.0.1:8080/login/,如果你看到如下的页面表示配置成功

    我们来看一下,程序它是如何进行这些操作的,并且把数据返回给了我们

    1.我们在浏览器上输入http://127.0.0.1:8080/login/之后,django会在url.py下去找login的路径

    2.因为我们的url.py下有login,它是在views下面的一个函数,所以django又去views下面找login函数

    3.django帮我们调用要执行的函数,会给我们的函数传一个request的参数,这里面跟请求相关的数据都保存在这个request里

    4.django在执行到render(request,'login.html')时,会去templates文件夹下找到login.html文件,打开读取内容,按照HTTP响应的格式给浏览器返回读取的内容

    5.浏览器收到django返回的响应消息,按照HTML格式去显示这个消息

    上面的五步就是我们在浏览器上输入一个地址之后发生的一系列的事情

    修改默认时区

    安装完Django默认的时区是en-us的

    LANGUAGE_CODE = 'en-us'
    
    TIME_ZONE = 'UTC'

    我们可以改为国内的,这里改为上海

    LANGUAGE_CODE = 'zh-hans'
    
    TIME_ZONE = 'Asia/Shanghai'

    改完之后重启项目,欢迎页面就显示成中文了

  • 相关阅读:
    Atitit 编程语言原理与概论attilax总结
    Atitit.attilax软件研发与项目管理之道
    Atitit.研发团队与公司绩效管理的原理概论的attilax总结
    Atitit.软件兼容性原理与实践 v3 q326.docx
    Atitit.html css  浏览器原理理论概论导论attilax总结
    atitit.http原理与概论attilax总结
    Atitit.并发编程原理与概论 attilax总结
    Atitit selenium3 新特性
    asp.net里获取当前时间,并字符串格式化转换(转)
    软件设计师
  • 原文地址:https://www.cnblogs.com/zouzou-busy/p/11080406.html
Copyright © 2011-2022 走看看