• DJango学习记录(1)


    学习书籍:Web接口开发与自动化测试——虫师

    Django学习记录

    一.Django简介
    二.安装Django
    1.环境

    python3.6+windows7

    2.安装步骤

    pip install django==1.10.3

    3.验证安装

    django-admin

    三.创建项目
    1.使用startproject命令创建guest项目

    django-admin startproject guest

    会在当前目录下生成guest文件夹,目录结构如下:

    |-- guest
    | |-- settings.py——Django项目的配置文件,包括应用、数据库、模版配置等
    | |-- urls.py——Django项目的URL声明
    | |-- wsgi.py——与WSGI兼容的Web服务器为你的项目提供服务的入口点
    | |-- __init__.py——用它标识一个目录为Python的标准包
    |-- manage.py——命令行工具,可以在cmd窗口使用命令和Django进行交互

    2.使用startapp命令创建sign项目

    python3 manage.py startapp sign

    会在当前目录下生成sign文件夹,目录结构如下:

    |-- admin.py——映射models中的数据到Django自带的admin后台
    |-- apps.py——用于应用程序的配置,在新的Django版本中新增文件
    |-- migrations——用于记录models中数据的变更
    | |-- __init__.py
    |-- models.py——Django的模型文件,创建应用程序数据表模型
    |-- tests.py——创建Django测试用例
    |-- views.py——Django的视图文件
    |-- __init__.py

    3.使用runserver命令运行sign项目

    python3 manage.py runserver 127.0.0.1:端口

    python3 manage.py runserver

    不填写端口默认使用8000端口

    可以看到下方提示,点击网址可以打开网页。

    Starting development server at http://127.0.0.1:8000/

    打开网址看到以下界面就是正常的:

    四.Hello World
    1.展示字符串Hello World

    (1)配置guest/settings.py,加入sign应用。

    (2)在../guest/urls.py文件,添加/index/的路由配置

    (3)在../sign/views.py文件,创建index函数

    (4)进入http://127.0.0.1:8000/index/,可以看到

    2.展示网页Hello World

    (1)在sign/目录下创建templates/index.html文件

    *Django默认查找templates/目录下的HTML文件

    代码如下:

    <html>
      <head>
          <title>Django Page</title>
      </head>
      <body>
        <h1>Hello World</h1>
      </body>
    </html>
    

    (2)修改views.py中的index函数

    通过使用Django的render函数,返回index.html页面

    from django.shortcuts import render
    from django.http import HttpResponse
    
    # Create your views here.
    def index(request):
        #return HttpResponse("Hello World")
        return render(request, "index.html")
    

    (3)进入http://127.0.0.1:8000/index/,可以看到

    和第一步骤不同的是,这个步骤展示的是html文件。

    3.小结

    通过前面两个步骤,可以了解到Django的基本处理流程(数据层暂时忽略)

    为了可以在浏览器中输入http://127.0.0.1:8000/index/,访问我们想要的页面

    (1)先在urls.py文件加入/index/路由,保证我们输入http://127.0.0.1:8000/index/地址后可以正常跳转,并后台访问views.index函数

    url(r'^index/$', views.index)

    (2)所以我们需要去views文件创建index函数,在index函数中,我们设置了请求index函数时,就返回index.html网页文件

    def index(request):
        return render(request, "index.html")
    

    (3)所以我们还需要创建index.html,这就是浏览器最终展示的结果五、

    五、SQLite3

    Django默认设置了SQLite3数据库,可先使用SQLite3做练习

    使用migrate命令进行数据迁移

    python3 manage.py migrate

    数据迁移成功后在当前目录生成db.sqlite3数据库文件

    六、Django 认证系统

    进行数据迁移后,Django同时也生成了auth_user表,该表中存放的用户信息可以用来登录Django自带的Admin管理后台。

    (1)使用createsuperuser命令生成超级管理员账号:adminadmin123456

    python3 manage.py createsuperuser

    (2)使用超管账号登录Admin管理后台:http://127.0.0.1:8000/admin/

    七.登录功能
    1.登录功能

    (1)修改前端页面——index.html

    <html>
      <head>
        <title>Django Page</title>
      </head>
      <body>
        <h1>登录中心</h1>
        <form method="post" action="/login_action/>  //提交表单后跳转到/login_action/
          <input name="uesrname" type="text" placeholder="username"><br>
          <input name="password" type="password" placeholder="password"><br>
          <button id="btn" type="submit">登录</button>
          {% csrf_token %}  添加CSRF令牌
        </form>
      </body>
    </html>
    

    (2)在url.py添加路由/login_action/

    urlpatterns = [
    	....
        url(r'^action/$', views.login_action),
    ]
    

    (3)在view.py添加login_action函数

    • 输入账号或密码为空时,提示账号或密码不允许为空!
    • 输入账号密码和Django系统中的账号密码不一致时,返回账号或密码错误!
    • 输入正确账号时,跳转到/home/网址
    def login_action(request):
        if request.method == 'POST':
            username = request.POST.get("username", "")
            password = request.POST.get("password", "")
            if username is "" or password is "":
                return render(request, "index.html", {"error": "账号或密码不允许为空!"})
            else:
                user = auth.authenticate(username=username, password=password)
                if user is not None:
                    print(user)
                    auth.login(request, user)
                    request.session['user'] = username
                    response = HttpResponseRedirect("/home/")
                    return response
                else:
                    return render(request, "index.html", {"error": "账号或密码错误!"})
    

    (4)在url.py添加home路由

    urlpatterns = [
    	.......
        url(r'^home/$', views.home),
    ]
    
    

    (5)在view.py添加home函数

    def home(request):
        username = request.session.get("user", "")
        return render(request, "home.html", {"user": username})
    

    (6)创建home.html文件

    <html>
      <head>
          <title>Django Page</title>
      </head>
      <body>
        <h1>Hello Home</h1>
      </body>
    </html>
    

    这样子,输入正确密码和账号后就会跳转到home界面。

  • 相关阅读:
    Django模型
    Django视图
    Django入门
    Python之安装第三方扩展库
    【转载】python计算文件的行数和读取某一行内容的实现方法
    easymock入门
    Head First Python之4持久存储
    Selenium2+python自动化之读取Excel数据(xlrd)
    Selenium2+python自动化之数据驱动(ddt)
    Head First Python之3文件与异常
  • 原文地址:https://www.cnblogs.com/loveniko/p/14000058.html
Copyright © 2020-2023  润新知