Django
window启动Django
- cmd文件目录下 django-admin startproject 项目名
- 配置数据库
- 在__init__.py中引用pymysql
import pymysql pymysql.install_as_MySQLdb()
- 在setting.py中配置DATABASES
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'wechat', 'USER': 'root', 'PASSWORD': '123456', 'HOST': 'localhost', 'PORT': '3306' } }
- 创建应用
- cd到项目中,与manage.py 同级
- 键入 python manage.py startapp 应用名
如果使用 使用python3.7+django2.2+pymysql时遇到这个错误:
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.2
解决方案:
将 Python37\Lib\site-packages\django\db\backends\mysql\base.py中第35/36行注释 如下:# if version < (1, 3, 13): # raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)
将 Python37\Lib\site-packages\django\db\backends\mysql\operations.py 中第146行的decode修改为encode 如下:
if query is not None: query = query.encode(errors='replace')
可以自己在代码中find一下。(ctrl+f)
- 激活应用
- 在setting.py中将刚才创建好的应用加入到INSTALLED_APPS中如:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', '应用名' ]
- 定义模型
- 在应用中models.py中键入
from django.db import models
- 在应用中创建模型类例如:
class User(models.Model): userId = models.CharField() user_62 = models.CharField() userName = models.CharField() userPassWord = models.CharField()
如果有外键关联:
属性 = models.ForeignKey("自己定义的类")
不需要定义主键,在生成时自己添加,并且为自动增加
- 在数据库中生成数据表
- 生成迁移文件
在终端中打开当前应用目录随后输入
python manage.py makemigrations
- 执行迁移
在终端中打开当前应用目录随后输入
python manage.py migrate
- 启动服务器
在终端中打开当前应用目录随后输入
python manage.py runserver
- admin站点管理
- 创建超级用户
在终端中打开当前应用目录随后输入
python manage.py createsuperuser
- 服务器汉化
将setting.py中
LANGUAGE_CODE = 'en-us'
替换为LANGUAGE_CODE = 'zh-Hans'
- 服务器时间校对
将setting.py中
TIME_ZONE = 'UTC'
替换为TIME_ZONE = 'Asia/Shanghai'
- 管理数据表
修改admin.py,将自己的模型填入admin.py中 例如:
from django.contrib import admin from .models import User admin.site.register(User)
- 自定义管理页面
# 列表页属性 # list_display = [] 显示字段 # list_filter = [] 过滤器 # search_fields = [] 查找栏 # list_per_page = number 分页 每number条为一个分页 # 添加、修改页属性 # fields = [] 改变添加,修改页属性顺序 # fieldset = [] 添加分组(fields与fieldset不能同时使用)
- 配置URL
- 在应用文件views.py中定义视图。如:
def index(request): return HttpResponse("good!")
- 修改项目目录下的urls.py文件。
from django.contrib import admin from django.urls import path, include from django.urls import re_path urlpatterns = [ path('admin/', admin.site.urls), re_path('^', include('myweb.urls')), ]
在应用目录下创建一个urls.py文件
from django.contrib import admin from django.urls import path, include, re_path from . import views urlpatterns = [ path(r'', views.index) ]