• Django(一)基础:安装环境、创建项目、视图、创建一个项目的应用(app)


    一、安装环境

    参考:
    https://docs.djangoproject.com/zh-hans
    https://www.runoob.com/django/django-install.html
    https://docs.qq.com/doc/DSHlYb3JoYVlETXh4 (要登录 pa qq)

    1.0 虚拟环境安装

    参考:https://www.cnblogs.com/chenxi188/p/10700608.html
    用于解决移植,多版本等问题

    #第一步:安装环境支持[linux下在前加sudo] http://www.lfd.uci.edu/~gohlke/pythonlibs/#pycurl
    pip install virtualenv
    
    #第二步,先进入想要的保存环境目录位置,再新建虚拟环境 
    virtualenv scrapytest
    
    #第三步,进入虚拟环境的目录
    #a.显示当前目录所有文件
    dir 
    #b.进入刚建的目录
    cd scrapytest 
    #c.进入脚本目录:
    cd scripts
    
    #【第四步】:进入虚拟环境输入如下命令之后即可使用虚拟环境,它本质和正常环境没区别:
    activate.bat 
    
    # 【第五步】:退出虚拟环境
    #a.先退出python
    exit()
    #b.退出虚拟环境(执行此文件)[linux下:进入bin目录 source deactivate]
    deactivate.bat
    
    第六步(同二步):创建需要指定python版本[系统默认是3.7,则创建2.7版]-p 表示版本
    #最后的名称随便取
     virtualenv -p C:Pythonpython27python.exe scrapypy2
     
    

    1.1 安装django

    pip install Django
    
    #用国内源加速安装
    pip install -i https://pypi.doubanio.com/simple/ django
    
    #[扩展知识]卸载django(不要用)[linux下在前加sudo]
    pip uninstall django
    

    二、创建django项目

    进入我们想要放项目的目录(直接在指定目录右键+shift---此处打开命令提示符),输入如下命令,创建 Django 项目:

    2.0创建项目语法

    django-admin.py startproject project1
    
    #或默认打开了文件django-admin.py则用如下命令
    django-admin startproject project1
    

    2.1 运行项目

    运行项目:

    cd project1  # 切换到我们创建的项目
    $ python manage.py runserver
    ……
    Starting development server at http://127.0.0.1:8000/
    Quit the server with CONTROL-C.
    

    在浏览器打开网址:127.0.0.1:8000

    即可看到发射的火箭效果。

    2.2 在指定端口打开项目

    运行命令说明: 0.0.0.0 让其它电脑可连接到开发服务器,8000 为端口号。如果不说明,那么端口号默认为 8000。

    py manage.py runserver
    
    #或指定商品运行
    python manage.py runserver 0.0.0.0:8000
    

    2.3 项目结构介绍

    创建完成后我们可以查看下项目的目录结构:

    $ cd project1
    $ tree
    #或 windows 显示所有文件要加 /f
    tree /f
    .
    |-- project1
    |   |-- __init__.py
    |   |-- settings.py
    |   |-- urls.py
    |   `-- wsgi.py
    `-- manage.py
    

    2.4 项目目录说明:

    • HelloWorld: 项目的容器。
    • manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
    • HelloWorld/__init__.py: 一个空文件,告诉 Python 该目录是一个 Python 包。
    • HelloWorld/settings.py: 该 Django 项目的设置/配置。
    • HelloWorld/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"。
    • HelloWorld/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。

    三、创建项目的应用(app)

    3.0 创建应用语法:

    整个项目是由一个个子应用组成的(应用:相当于建立一个子功能模块)。

    py manage.py startapp app1
    或
    python mange.py startapp app1
    

    3.0.1完成后,项目目录:

    D:adjango-appproject1>tree /f
    卷 本地磁盘 的文件夹 PATH 列表
    卷序列号为 18A9-EAFD
    D:.
    │  db.sqlite3
    │  manage.py
    ├─app1
    │  │  admin.py
    │  │  apps.py
    │  │  models.py
    │  │  tests.py
    │  │  urls.py
    │  │  views.py
    │  │  __init__.py
    │  │
    │  ├─migrations
    │
    └─project1
        │  asgi.py
        │  settings.py
        │  urls.py
        │  wsgi.py
        │  __init__.py
    

    3.1 应用注册

    1. 一个应用创建完成后需要进行注册,才能使用它
    2. 建立应用和项目之间的联系,需要对应用进行注册:
      修改 project1project1settings.py 中的INSTALLED_APPS配置项
    # -*- coding: UTF-8 -*-
     #因为加了中文所以头部要加上上面一行文字
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'app1', #要注册的应用,如果有文件夹则:[ 文件夹名.app1 ]
    ]
    

    3.2 创建应用的第1个【视图】页面

    1)在 project1/app1/view.py 文件,输入代码:

    from django.http import HttpResponse
     
    def index(request):
        return HttpResponse("Hello world ! ")
    

    注:视图函数必须有一个参数request,进行处理之后,需要返回一个HttpResponse的类对象,hello world就是返回给浏览器显示的内容。

    2)接着,添加并配置app1/urls.py

    视图配置说明
    project1/app1/urls.py 文件代码:

    from django.urls import path
    from . import views
    
    urlpatterns=[
        path('app1/',views.index),
    ]
    

    或用url方法配置app1/urls.py路径【django3.x报错误】

    from django.conf.urls import url
    from booktest import views
    # index
    # index2
    # index2/
    # 在应用的urls文件中进行url配置的时候:
    # 1.严格匹配开头和结尾
    urlpatterns = [
        # 通过url函数设置url路由配置项
        url(r'^index$', views.index), # 建立/index和视图index之间的关系
        url(r'^index2$', views.index2),
        url(r'^books$', views.show_books), # 显示图书信息
        url(r'^books/(d+)$', views.detail), # 显示英雄信息
    ]
    

    3)配置project1/urls.py

    from django.contrib import admin
    from django.urls import path,include
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('',include('app1.urls')),
    ]
    

    或用url方法配置project1/urls.py路径【django3.x报错误】

    from django.conf.urls import include, url
    from django.contrib import admin
    
    # 项目的urls文件
    # index
    # index2
    # index2/
    # aindex
    urlpatterns = [
        url(r'^admin/', include(admin.site.urls)), # 配置项目
        url(r'^', include('booktest.urls')), # 包含booktest应用中的urls文件
    

    4)效果:刷新localhost:8000/index页面显示

    hello world !

    3.3 path() 函数用法

    Django path() 可以接收四个参数,分别是:

    1. 两个必选参数:route、view
    2. 两个可选参数:kwargs、name。

    语法格式:

    path(route, view, kwargs=None, name=None)

    1. route:字符串,表示 URL 规则,与之匹配的 URL 会执行对应的第二个参数 view。
    2. view:用于执行与正则表达式匹配的 URL 请求。
    3. kwargs:视图使用的字典类型的参数。
    4. name:用来反向获取 URL。

    3.4 url()函数的用法【django3.x报错误】

    配置的目的是让建立url和视图函数的对应关系。url配置项定义在urlpatterns的列表中,每一个配置项都调用url函数。

    • url函数有两个参数,第一个参数是一个正则表达式,第二个是对应的处理动作。

    配置url时,有两种语法格式:

    • url(正则表达式,视图函数名)
    • url(正则表达式,include(应用中的urls文件))
      工作中在配置url时,首先在项目的urls.py文件中添加配置项时,并不写具体的url和视图函数之间的对应关系,而是包含具体应用的urls.py文件,在应用的urls.py文件中写url和视图函数的对应关系。

    3.5 url()匹配的过程

    在项目的urls.py文件中包含具体应用的urls.py文件,应用的urls.py文件中写url和视图函数的对应关系。
    在这里插入图片描述

    当用户输入如http://127.0.0.1:8000/aindex时,去除域名和最前面的/,剩下aindex,拿aindex字符串到项目的urls文件中进行匹配,配置成功之后,去除匹配的a字符,那剩下的index字符串继续到应用的urls文件中进行正则匹配,匹配成功之后执行视图函数index,index视图函数返回内容hello python给浏览器来显示。

  • 相关阅读:
    python — 文件操作
    Android存储
    JAVA 里面 synchronized作用
    UML元素
    ubuntu18.04 命令行安装gradle
    UML时序图
    视觉SLAM中的数学——解方程AX=b与矩阵分解:奇异值分解(SVD分解) 特征值分解 QR分解 三角分解 LLT分解
    现行最小二乘过约束和欠约束如何求解
    SLAM-G2O分析
    自定义Gradle插件
  • 原文地址:https://www.cnblogs.com/chenxi188/p/12176626.html
Copyright © 2020-2023  润新知