Django项目创建流程

安装

pip install django

本文Django版本使用3.0.1

创建项目

用 Django 自带的脚手架工具 django-admin 创建项目

django-admin startproject 项目名

生成项目文件

项目名
├── 项目名              // 项目全局文件目录
│   ├── __init__.py
|   ├── asgi.py
│   ├── settings.py          // 全局配置
│   ├── urls.py              // 全局路由
│   └── wsgi.py              // WSGI服务接口
└── manage.py                // 项目管理脚本

启动后台服务(开发)

python manage.py runserver ip:port
# 其中ip和port可以自主填写, 默认localhost:8000

通过浏览器访问localhost:8000即可访问

绑定数据库

settings.py修改DATABASES

绑定MySql
DATABASES = {
 'default': {
     'ENGINE': 'django.db.backends.mysql',
     'NAME': 'db_name',
     'USER': 'user',
     'PASSWORD': 'password',
     'HOST': '127.0.0.1',
     'PORT': '3306',
 }
}

Django默认使用的MySQLdb不支持python3, 推荐使用pymysql, 需在settings.py加上:

import pymysql
pymysql.install_as_MySQLdb()

在数据库中建表

python manage.py makemigrations
python manage.py migrate

创建超级管理员

python manage.py createsuperuser

依次输入django后台的超级管理员用户名、邮箱和密码,即可生成超级管理员账户

创建自定义app

python manage.py startapp 自定义app名称

生成app文件如下

自定义app名称                     // 应用目录
├── __init__.py          // 初始化模块
├── admin.py             // 后台管理配置
├── apps.py              // 应用配置
├── migrations           // 数据库迁移文件目录
│   └── __init__.py      // 数据库迁移初始化模块
├── models.py            // 数据模型
├── tests.py             // 单元测试
└── views.py             // 视图

将自定义应用加入settings.pyINSTALLED_APPS

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    '自定义app名称',
]

在自定义app项目里创建urls.py, 绑定路由到全局urls.py, 这样访问ip:port/自定义即可访问指定视图

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('自定义/', include('自定义app名称.urls')),
]

访问后台报错

bug1

解决方案: 在setting.pyALLOWED_HOSTS添加*

# setting.py文件

ALLOWED_HOSTS = ['*']  #在这里请求的host添加了*
请求资源报错

bug2

解决方案: 收集静态文件到 static 目录下

python manage.py collectstatic
绑定MySQL坑
MySQLdb不支持Python3

Django连接MySQL时默认使用MySQLdb驱动,但MySQLdb不支持Python3,因此将MySQL驱动设置为pymysql

django 2.2版本或以上对MySQLdb版本有要求

bug3

  1. 解决方案1: django使用2.2以下版本, 如2.1.4
  2. 解决方案2: 注释django代码中对MySQLdb版本控制的报错
    • 到python环境下django包的路径: ./lib/python3.7/site-packages/django/db/backends/mysql
    • 注释掉base.py的37行:
      bug4

参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值