zoukankan      html  css  js  c++  java
  • 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',
    ]

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

  • 相关阅读:
    ASP.NET 4.0 与 Entity Framework 4第四篇Entity Framework在三层架构中的使用
    ASP.NET 4.0 与 Entity Framework 4第一篇采用ModelFirst 开发方式创建数据库
    ASP.NET 4.0 与 Entity Framework 4第二篇使用Entity Framework 进行CRUD操作
    ASP.NET 4.0 与 Entity Framework 4第三篇使用Entity Framework调用存储过程
    Unity3D4.* NGUI制作动态字库
    Unity3D内存释放
    1112 Stucked Keyboard (20 分)(map)【回顾】
    1116 Come on! Let's C (20 分)(hash散列)
    1108 Finding Average (20 分)(字符串处理)
    1113 Integer Set Partition (25 分)(排序)
  • 原文地址:https://www.cnblogs.com/hancece/p/11695051.html
Copyright © 2011-2022 走看看