Python Web入门:Django学习与实践一

本次主要是对自己学习的内容进行复习加深理解,涉及的知识是Django的安装和简单的页面创建

一、必备基础知识

        Python、html、网页相应原理(熟悉Java编程的应该都烂熟于心了)

二、Django

        Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器C。

        Django官方网址:https://www.djangoproject.com/

1.Django安装

       Django2.0+以下版本支持Python2.7、3.2、3.4、3.5

       Django2.0+以上支持Python3.5及以上

       所以我安装的是Python2.7,安装Django版本是1.10.2

      (1)安装Python

                 官方下载Python安装文件,直接安装。Windows用户在安装Python同时会自动安装pip,其他系统需要自行安装pip

     (2)安装Django

                 pip install Django==1.10.2
                 最好采用这种带有版本号的方式安装,否则会产生自动安装最新版本而导致的不兼容情况   

2.实践:创建项目、理解各文件含义

      我使用的开发工具是pycharm

      在想要保存网站的目录下(指定目录)创建项目文件夹:使用django-admin startproject myblog命令创建myblog项目

     创建完成后文件格式如下:

             myblog

                          — —  manage.py

                          — —  myblpg

                                                 — — __init__.py

                                                 — — settings.py

                                                 — — urls.py

                                                 — — wsgi.py

     (1)manage.py

                    项目管理器

                    在manage.py同级目录下使用python mange.py则可以查看manage所包含的管理功能,其中最重要的是其包含服务器的启动命令

                    使用 Python manage.py runserver [端口号]   端口号可选,默认8000,结果如下:

                    Python Web入门:Django学习与实践一_第1张图片


   (2)myblog

             与项目名同名的文件,实为项目容器,包含项目的基本配置。理论上这个名字可以修改,但是因为在创建时已将其写入各配置文件,因此如果要修改会造成不必要的麻 

        烦、建议不修改

             1)wsgi.py

                   Python服务器网关接口,不需要修改

             2)urls.py

                   URL配置文件

             3)__init__.py

                   通常为空,告诉我们这是一个模块

            4)settings.py

                   最重要的一个文件,是项目总的配置文件,管理着包含数据库、web应用、时间等的配置

                   详细介绍如下:

                   a. BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

                                项目地址

                   b. # SECURITY WARNING: keep the secret key used in production secret!

            SECRET_KEY = 's23r&8h^n%+a-_w$g+0*tm&4m2ke^u+m=)zu7urqp5g(o%!8kb'
                   c. # SECURITY WARNING: don't run with debug turned on in production!
           DEBUG = True  调试时会用到,默认设为TRUE,当发布时要改为False,以免因此直接将错误抛给用户
        d. ALLOWED_HOSTS = []   允许登入的网站列表,空则默认所有
        e. # Application definition
           INSTALLED_APPS = [                    创建新的应用就需要将其加入到这个列表中,如我加入了blog
              'django.contrib.admin',
              'django.contrib.auth',
              'django.contrib.contenttypes',
              'django.contrib.sessions',
              'django.contrib.messages',
              'django.contrib.staticfiles',
              'blog'
           ]
        f.中间件,一般不需要修改
              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',
             ]
       g. 指向的就是urls.py文件
          ROOT_URLCONF = 'myblog.urls'
      h.模板文件
           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',
                       ],
                   },
              },
         ]

                i. 服务器网关接口

 
  
 
  
 
  
         WSGI_APPLICATION = 'myblog.wsgi.application'
j.数据库相关配置文件
         # Database
         # https://docs.djangoproject.com/en/1.10/ref/settings/#databases

         DATABASES = {
             'default': {
                 'ENGINE': 'django.db.backends.sqlite3',
                 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
              }
        }
      k.密码管理
        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',
           },
       ]
     l.其他
        # Internationalization
        # https://docs.djangoproject.com/en/1.10/topics/i18n/

         LANGUAGE_CODE = 'en-us'

         TIME_ZONE = 'UTC'

         USE_I18N = True

         USE_L10N = True

         USE_TZ = True

3.实践:创建应用

       在manage.py同级目录下使用 python mange.py startapp blog创建blog项目应用,并将项目名添加至INSTALLED_APPS列表中

       应用文件格式如下:

       blog

               — —migrations        下面的所有文件均由django自动生成,是管理数据迁移的模块

                                           — — __init__.py

              — — __init__.py

              — — admin.py          当前应用的管理文件,每个应用都有一个管理文件

              — — apps.py            应用的配置文件

              — — models.py        数据模型模块,以后创建的数据、数表都存放在这里

              — — tests.py             自动化测试模块

              — — views.py           执行相应的代码所在的模块


基本的创建已将解析完毕、下篇开始创建第一个网页。

你可能感兴趣的:(Python Web入门:Django学习与实践一)