django基础(一)——创建项目、修改配置

---恢复内容开始---

前提:安装好django,在命令行中输入django-admin,检查是否已经安装好

一、创建Django工程

方法一:

1.建一个文件夹,如“demo”

2.命令行进入这个文件夹,执行命令:django-admin startproject dj_test 。这个命令可以在这个文件夹下创建一个django工程。执行后创建一个"dj_test"的目录。名字自己定义

dj_test中的Py文件:

setting.py:配置文件

urls.py:配置url

3.命令行:cd dj_test进入创建的django工程(dj_test),执行命令python manage.py runserver   :启动服务:

4.服务启动后,访问127.0.0.1:8000。正常打开页面就是创建成功。

5.ctrl+c退出服务,命令行输入:Python manage.py startapp user  创建一个子系统。创建项目后必须创建一个app,user是自定义的名字。创建子系统后,工程中会生成一个db.sqlite的文件

方法二:使用pycharm创建:

1.打开pycharm,FILE——close project  在welcome to pycharm 界面,点create new project,选择Django项目,然后选择location目录(day18)、Python环境

2.more settings 中的Application name 就是创建APP(子系统)的名字,这里命名为"user",不写就不会创建一个app。

 

二:

结构解释:

1.manage.py:项目管理器,比如修改了数据库,就需要用到manage.py来操作

2.templates:放html文件的

3.项目文件中文件:

(1)settings.py:配置文件

(2)urls.py:配置url地址

(3)wsgi.py:开发完成后,部署到服务器时用到的文件

4.创建的子系统(user)中的文件:

(1)models.py:操作数据库,定义表结构

(2)views.py:写主要逻辑

5.migrations:中存放表结构

 

三、修改配置文件:

1.setting.py:

(1)LANGUAGE_CODE = 'en-us' 改为 LANGUAGE_CODE = 'zh-Hans'  。这里改的是语言,英文改为中文。代码在(108行)

(2)TIME_ZONE = 'UTC' 改为TIME_ZONE = 'Asia/Shanghai'。这里是修改时区,把标准时区改为上海。

(3)USE_TZ = True改为USE_TZ = False       。改这里是存到数据库后的时间 也是正确的,默认是True,默认存到数据库的时间是标准时区的时间。

修改后,运行工程(day18)或者在Terminal中输入python manage.py runserver ,访问127.0.0.1:8000页面变成中文

(4)78行

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}

这个默认的数据库是sqlite的,sqlite是文件型数据库,也可以写sql语句。sqlite是一个本地的数据库。

如果需要改成mysql数据库,把default这个字典替换成以下代码,通过这个可以使用mysql数据库

    'default': {
        'ENGINE': 'django.db.backends.mysql',  # 数据库引擎改为mysql
        'NAME': 'jxz',  # 数据库名称
        'USER': 'jxz',  # 用户
        'PASSWORD': '123456',  # 密码
        'HOST': '118.24.3.40',  # ip
        'PORT': 3306,  # 端口号
    }

改成mysql运行项目会报错,解决办法:

在工程目录(day18)init.py文件下,加入代码。这个是把Pymysql 当做SQLdb来使用

import pymysql
pymysql.install_as_MySQLdb()

如果运行时报了版本问题的错误,就降低django版本:

查看django 版本:命令行Python环境下执行

import django
django.VERSION

如果django版本高于2.1,执行 pip install django==2.1,安装2.1版本的django。

在这里我们不用mysql 数据库,所以使用django默认的sqlite。所以先把改成mysql的default注释掉,换成原来的default。练习用默认的数据,部署时再改为mysql。

(5)第55行,TEMPLATES负责配置urls文件的路径在哪里,如果是通过命令创建的项目,这个列表中没有“  'DIRS': [os.path.join(BASE_DIR, 'templates')]”这一行数据,用pycharm创建的项目是有这一行的

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')]   
#dirs配置目的时找HTML文件
#如果是通过命令创建的项目,这个列表中没有“  'DIRS': [os.path.join(BASE_DIR, 'templates')]”这一行数据,用pycharm创建的项目是有这一行的 ,
'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', ], }, }, ]

 (6)注释掉下面代码中注释的一行,如果不注释掉,在访问网址时,会出现403的问题

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware',   #django的中间件,用于form表单。为了防止重复提交,如果做了前后端分离,重复提交的问题可以交给前端去限制,
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

 

 

 

 

 

 

 

---恢复内容结束---

posted @ 2019-10-17 21:01  4jd121de2gf4e2sa5d  阅读(306)  评论(0编辑  收藏  举报