栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

django创建项目没有manage(django创建项目生成的文件)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

django创建项目没有manage(django创建项目生成的文件)

Django项目创建

    项目创建

    django-admin startproject mydemo

    项目结构

    树形结构

    $ cd mydemo/
    $ tree
    .
    |-- mydemo
    |   |-- __init__.py
    |   |-- asgi.py
    |   |-- settings.py
    |   |-- urls.py
    |   |-- wsgi.py
    |-- manage.py
    

    结构图

    目录说明:

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

    settings.py 文件

    """
    
    Django settings for mydemo project.
    
    Generated by 'django-admin startproject' using Django 3.1.7.《django版本》
    
    For more information on this file, see
    
    
    For the full list of settings and their values, see
    
    """
    
    from pathlib import Path
    
    # Build paths inside the project like this: base_DIR / 'subdir'
    
    base_DIR = Path(__file__).resolve().parent.parent """《显示当前项目根目录》"""
    
    # Quick-start development settings - unsuitable for production
    
    # See 
    
    # SECURITY WARNING: keep the secret key used in production secret
    
    SECRET_KEY = 'jb^(bip2g_@%r*5ni-8@#yz%*crzw7sqpq_qcbhw48lgk+ctxo'
    
    # SECURITY WARNING: don't run with debug turned on in production
    
    DEBUG = True
    """
    调试模式开关,默认为True(调试模式)
    为True时:1.检测代码改动后立刻重启服务;2.显示报错页面
    为False时(正式启动模式/上线模式):项目上线时一定要更改为False
    """
    
    ALLOWED_HOSTS = []
    """
    允许的域名,只有列表中添加的域名可以访问服务器,默认会允许127.0.0.1或者localhost访问
    设置为"*":表示允许所有域名访问
    设置当前局域网内域名可进行访问:
    1.项目启动时设置:python manage.py runserver 0.0.0.0:8000
    2.添加局域网IP
    """
    
    # Application definition
    
    INSTALLED_APPS = [
       'django.contrib.admin',
       'django.contrib.auth',
       'django.contrib.contenttypes',
       'django.contrib.sessions',
       'django.contrib.messages',
       'django.contrib.staticfiles',
    ]
    
    MIDDLEWARE = [
       'django.middleware.security.SecurityMiddleware',
       'django.contrib.sessions.middleware.SessionMiddleware',
       'django.middleware.common.CommonMiddleware',
       'django.middleware.csrf.CsrfViewMiddleware',
       'django.contrib.auth.middleware.AuthenticationMiddleware',
       'django.contrib.messages.middleware.MessageMiddleware',
       'django.middleware.clickjacking.XframeOptionsMiddleware',
    ]
    
    ROOT_URLCONF = 'mydemo.urls'
    """
    项目主路由位置,默认为项目文件夹下的urls.py
    """
    
    TEMPLATES = [
       {
          'BACKEND': 'django.template.backends.django.DjangoTemplates',
          'DIRS': [],
          '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',
                ],
          },
       },
    ]
    """
    模版配置
    """
    
    WSGI_APPLICATION = 'mydemo.wsgi.application'
    
    # Database
    
    # 
    
    DATAbaseS = {
       'default': {
          'ENGINE': 'django.db.backends.sqlite3',
          'NAME': base_DIR / 'db.sqlite3',
       }
    }
    
    # Password validation
    
    # 
    
    AUTH_PASSWORD_VALIDATORS = [
       {
          'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
       },
       {
          'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
       },
       {
          'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
       },
       {
          'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
       },
    ]
    
    # Internationalization
    
    # 
    
    LANGUAGE_CODE = 'en-us'
    """
    主页语言配置,可设置为中文
    LANGUAGE_CODE = 'zh-hans'
    """
    TIME_ZONE = 'UTC'
    """
    时区设置,主要影响数据库时间显示
    TIME_ZONE = 'Asia/shanghai'
    """
    USE_I18N = True
    
    USE_L10N = True
    
    USE_TZ = True
    
    # Static files (CSS, Javascript, Images)
    
    # 
    
    STATIC_URL = '/static/'
    """
    静态文件路由
    """
    

    URL

    URL 结构:protocol://hostname[:port]/path[?query][#fragment]

    protocol(协议):

    http:通过http访问该资源,格式:http://https:通过安全的https:访问该资源,格式:https://file:通过file访问本地的资源,格式:file:///

    hostname(主机名/域名):

    是指存放资源的服务器的域名系统(DNS)主机名、域名或IP地址

    port(端口):

    可选,省略时使用方案的默认端口各种传输协议都有默认的端口号http:默认是80,https:默认是443

    path(路由地址):

    由零或多个“/”符号隔开的字符串,一般用来表示主机上的一个目录或文件地址,路由地址决定了服务器端如何处理这个请求

    query(查询字符串):

    可选,以“?”开头,用于给动态网页传参,可传递多个参数用“&”隔开,参数名和参数值用等号隔开key=value

    fragment(信息片段):

    字符串,以“#”开头,用于指定网络资源中的片段,类似书签,下次访问时带上fragment可直接定位到该片段

    Django如何处理URL请求

      根据浏览器传过来的URL,django从配置文件中根据ROOT_URLCONF找到主路由文件;默认情况下该路由文件位于同名目录下的urls.py中django加载主路由中的urlpattern变量,urlpattern是一个包含很多路由的列表从上往下依次匹配urlpattern中的path,匹配到第一个满足的path即中断后续匹配匹配成功,调用对应的视图函数处理请求,返回对应的响应匹配失败,返回404响应

    视图函数

    定义:用于接收浏览器请求( HttpRequest对象),并通过HttpResponse对象返回响应的函数

    语法:return必须是HttpResponse对象

    def  demoview(request[,其他参数]):
       return HttpResponse('需要返回的数据')
    

    示例:
    在项目同名目录下创建views.py

    from django.http import HttpResponse
    def page1_view(requet):
       html = "hallo world"
       return HttpResponse(html)
    

    添加路由url.py

    from django.contrib import admin
    from django.urls import path
    from . import views
    urlpatterns = [
       path('admin/', admin.site.urls),
       path('page1/', views.page1_view),
    ]
    

    路由配置-path

    path()函数导入 from django.urls import path语法 path(route,views,name=None)参数:

    route:字符串类型,匹配的请求路径views:指定路径所对应的视图处理函数的名称name:为地址起别名,在模板中进行地址反向解析时使用 path转换器

    语法:<转换器类型:自定义名>作用:若转换器类型匹配到对应类型的数据,则将数据按照关键字传参的方式传递给视图函数例:path('page/',views.xxx),如果匹配到page路径后面时int类型,则会将接收到的路径中的数据赋值给变量page,然后以关键值传参的方式传递到视图中

    转换器类型作用样例
    str匹配除了‘/’之外的非空字符串”v1/users/str:username“匹配/v1/users/china,匹配结果为:username=china
    int匹配0和任何正整数,返回一个int”v1/users/int:num“匹配/v1/users/35,匹配结果为:num=35
    slug匹配任意有ASCII字母或数字以及连字符和下划线组成的短标签”v1/users/slug:sl“匹配/v1/users/this_is_django,匹配结果为:sl=this_is_django
    path匹配非空字段,包括路径分隔符”/“”v1/users/path:ph“匹配/v1/users/goods/a/b/c,匹配结果为:ph=goods/a/b/c
    re_path转换器

    语法:re_path(reg,view,name=xxx)

    正则表达式必须为__命名分组模式__(?Ppattern;)匹配成功后用关键字传参的方式传递给视图函数 作用:使用正则进行精确匹配例:url(r'^weather/(?P[a-z]+)(?Pd{4})/$', views.weather)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/772832.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号