4、第十 - WEB开发进阶 - Django框架的介绍及应用

   Web Django 框架安装、调用使用介绍。

一、Django框架介绍

 Django的安装、及目录的结构。

#创建Django 工程
Django-admin startproject  [工程名字]
	
	mysite
		- mysite   #对整个程序进行配置,
			- init
			- settins #配置文件
			- url	  #URL对应关系
			- wsgi    #遵循WSGI规范,uwsgi + Nginx 
		- manage.py   #管理Django程序:
						- python manage.py
						- python manage.py startapp xxx 
						- python manage.py makemigrations
						- python manage.py migrate						
# 运行Django功能(注意环境变量)
python3 manage.py runserver 127.0.0.1:8001 
二、Django app创建及应用

 Django目录介绍应用,app 创建。一般会在Django项目下创建,命令行直接可以创建:python3.5 manage.py startapp cmdb

PyCharm 上也可以操作:如下图

目录工具解析:

APP
	- __init__.py  文件引导路径
 	- migrations 数据库记录,只是用来记录表结构
 	- admin   Django提供的后台管理
 	- apps    当前app的配置
 	- models  ORM,写制定的类的。通过命令可创建数据库结构
 	- tests   单元测试
 	- views   业务逻辑代码(写代码的地方)

 	admin -- 后台管理程序
 		- 登录
 		- 权限划分

案例:为app能够Django项目工程下响应,模拟开发一个用户登录的页面。

1、在django_1  工程项目目录下,配置settings.py文件,找到 INSTALLED_APPS,把创建的app添加上,如下:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'cmdb'  #新添加的app名称
]

 2、在django_1  工程项目目录下,配置settings.py文件,找到TEMPLATES,把 DIRS tempaltes 路径描述好,如下:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,'templates')], #py3中估计要手工添加、Py2应该不用
        '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',
            ],
        },
    },
]

 在templates  目录下,编写登录模板 login.html,如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        label{
            width: 80px;
            text-align: right;
            display: inline-block;
        }
    </style>
</head>
<body>
    <form action="/login" method="post">
        <p>
            <label for="username">用户名:</label>
            <input id="username" type="text" >
        </p>
        <p>
            <label for="password">密码:</label>
            <input id="password" type="password">
            <input type="submit" name="提交">
        </p>
    </form>
</body>
</html>

 3、设置URL访问对应关系:找到django_1下,urls.py 添加如下:

from django.urls import path
from cmdb import views


urlpatterns = [ 
    path('admin/', admin.site.urls),
    path(r'login/',views.login)  #添加对应的URL关系
]

 4、配置app的处理逻辑,在cmdb的app项目目录下,找到对应的views.py 进行配置。如下:

from django.shortcuts import render

def login(request):
    #第一种:以前打开文件的方式
    # f = open(b'templates/login.html','rb',encoding="utf-8")
    # data = f.read()
    # f.close()
    # return HttpResponse(data)
    
   #第二种:django中自带render模式,简化代码 
    return render(request,'login.html')

测试方法效果:

~~ 以上~~

猜你喜欢

转载自www.cnblogs.com/chen170615/p/9845425.html
今日推荐