一、Django构建项目
1.1 创建项目
命令: django-admin startproject 项目名
django-admin startproject django_demo01
其中 mysite 是你的项目名称
这时会在指定的项目文件夹中,生成一个 mysite 文件夹,目录结构如下:
django_demo01/
manage.py
django_demo01/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
这些目录和文件的说明如下:
- manage.py 一个让你用各种方式管理 Django 项目的命令行工具。
- init.py 一个空文件,告诉 Python 这个目录应该被认为是一个 Python 包
- settings.py 项目的配置文件,有关于数据库、编码、时区等
- urls.py 项目的 url路由配置,即url路由与其函数的对应配置
- wsgi.py :作为你的项目的运行在 WSGI 兼容的Web服务器上的入口。
- asgi.py :作为你的项目的运行在 ASGI 兼容的 Web 服务器上的入口
1.2 启动项目
在该cmd目录下执行如下命令,可以启动项目:
python manage.py runserver
该命令后续可以增加参数,如:
python manage.py runserver 8081
python manage.py runserver 127.0.0.1:8888
在浏览器中访问提示的服务器网址:Starting development server at http://127.0.0.1:8000/ 中的
1.3 创建Django应用
一个项目由很多个应用组成的,每一个应用完成一个功能模块。
创建应用的命令如下: python mange.py startapp
应用名称
cmd窗口中,进入最外层的mysite,在这个目录下,我们可以输入如下命令,创建一个新的子应用:
python manage.py startapp app01
创建完成后的文件目录结构如下:
─django_demo01
│ db.sqlite3
│ manage.py
│
├─app01
│ │ admin.py
│ │ apps.py
│ │ models.py
│ │ tests.py
│ │ views.py
│ │ __init__.py
│ │
│ └─migrations
│ __init__.py
│
└─django_demo01
│ asgi.py
│ settings.py
│ urls.py
│ wsgi.py
│ __init__.py
│
└─__pycache__
settings.cpython-38.pyc
urls.cpython-38.pyc
wsgi.cpython-38.pyc
__init__.cpython-38.pyc
- init.py 是一个空文件,表示当前目录news可以当作一个python包使用。
- tests.py 文件用于开发测试用例,在实际开发中会有专门的测试人员,这个事情不需要我们来
做。 - models.py 文件跟数据库操作相关。
- views.py 文件跟接收浏览器请求,进行处理,返回页面相关。
- admin.py 文件跟网站的后台管理相关。
- migrations 数据库迁移文件。
1.4 应用注册
应用创建成功后,需要注册才可以使用,也就是建立应用和项目之间的关联,在项目 /settings.py 中
INSTALLED_APPS下添加应用的名称就可以完成注册。
初始项目的INSTALLED_APPS如下图:
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01',
)
1.5 服务说明
能够打开一个django
的欢迎页面,是因为启动了django自带的一个简易web服务器,它是一个用纯 Python 写的轻量级的 Web 服务器。仅仅用于开发环境,不要在生产环境使用。
在这个服务器中,在需要的情况下会对每一次的访问请求重新载入一遍 Python 代码。所以你不需要为了让修改的代码生效而频繁的重新启动服务器。然而,一些动作,比如添加新文件,将不会触发自动重新加载,这时你得自己手动重启服务器。
二、Djnago请求
2.1 请求流程
2.2 urls.py配置
from django.contrib import admin
from django.urls import path
from app01 import views
urlpatterns = [
path('admin/', admin.site.urls),
path('firstRequest/', views.FirstRequest),
]
2.3 views.py
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def FirstRequest(request):
return HttpResponse("第一个Django请求成功")
2.4 启动服务
python manage.py runserver
2.5 浏览器发送请求
其中在views.py文件中,每一个请求方法需要有一个request参数,通过该参数可以获取请求相应信息。可以使用dir(request)查看详细。
[
'COOKIES', 'FILES', 'GET', 'META', 'POST', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__',
'__init__', '__init_subclass__', '__iter__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__',
'__subclasshook__', '__weakref__', '_current_scheme_host', '_encoding', '_get_full_path', '_get_post', '_get_raw_host', '_get_scheme', '_initialize_handlers', '_load_post_and_files'
, '_mark_post_parse_error', '_messages', '_read_started', '_set_content_type_params', '_set_post', '_stream', '_upload_handlers', 'accepted_types', 'accepts', 'body', 'build_absolute_uri', 'close', 'content_params', 'content_type', 'csrf_processing_done', 'encoding', 'environ', 'get_full_path', 'get_full_path_info', 'get_host', 'get_port', 'get_signed_cookie', 'headers', 'is_secure', 'method', 'parse_file_upload', 'path', 'path_info', 'read', 'readline', 'readlines', 'resolver_match', 'scheme', 'session', 'upload_handlers', 'user'
]
2.6 开发第一个登录表单
- urls.py配置
from django.contrib import admin
from django.urls import path
from app01 import views
urlpatterns = [
path('admin/', admin.site.urls),
path('firstRequest/', views.FirstRequest),
path('login/', views.login),
]
- views.py添加业务方法
def login(request):
# 返回页面
html =