文中穿插的链接是上方学习资料来源
一、创建django项目:
1)导入需要的包
pip install requests django requests lxml panda pymysql jieba wordcloud matplotib scikit-learn -i https://pypi.tuna.tsinghua.edu.cn/simple
#国内镜像源 清华
在PyCharm:Terminal 中,在目标目录下创建django项目
django-admin startproject WhereToGo
这时候如果PyCharm中看不到项目:
PyCharm-File-Open、在目标目录下找到刚才创建的项目~~然后就找到啦~
1)创建APP
python manage.py startapp App #创建app 其名App
「App内:migrations文件夹:数据库迁移文件夹
2)创建模型
路径:App - models.py
class TravelInfo(models.Model): # 继承
id = models.AutoField('id', primary_key=True) # 自增主键
title = models.CharField('景区名', max_length=255, default='') # 字符串字段 |django 默认不为空,有空要指明
level = models.CharField('景区等级', max_length=255, default='')
province = models.CharField('省份', max_length=255, default='')
star = models.CharField('热度', max_length=255, default='')
detailAddress = models.CharField('景点地址', max_length=255, default='')
shortIntro = models.CharField('短评', max_length=255, default='')
detailUrl = models.CharField('详细地址', max_length=255, default='')
score = models.CharField('评分', max_length=255, default='')
commentsLen = models.CharField('评论个数', max_length=255, default='')
detailIntro = models.CharField('详细介绍', max_length=255, default='')
img_list = models.CharField('图片列表', max_length=2550, default='')
comments = models.CharField('用户评论', max_length=2555, default='')
cover = models.CharField('封面', max_length=2555, default='')
createTime = models.CharField('爬取时间', auto_now_add=True) # 自动获取时间
https://www.cnblogs.com/jingzaixin/p/8670094.html
【默认头像设置】
1、准备一个喜欢的图片
2、创建两个文件(media、static)->media文件下创建文件avatar->将图片粘贴进去(注意名称格式要一致~)
diango目录下:[new]-[directory]
【完成后目录如下】
class User(models.Nodel): # 继承
id = models.AutoField('id', primary_key=True) # 自增主键
username = models.CharField('用户名', max_length=255, default='') # 字符串字段 |django 默认不为空,有空要指明
password = models.CharField('密码', max_length=255, default='')
CharacterSet = models.CharField('设定', max_length=255, default='') # 代替性别
avatar = models.CharField('头像', upload_to='avatar', default='avatar/default.png') # upload_to='avatar':自定义图片和文件上传路径(可优化)| default='avatar/default.png:默认头像
textarea = models.CharField('个人简介', max_length=255, default='')
createTime = models.CharField('创建时间', auto_now_add=True) # 自动获取时间
路径:WhereToGo - settings.py
"""
Django settings for WhereToGo project.
Generated by 'django-admin startproject' using Django 4.2.9.
For more information on this file, see
https://docs.djangoproject.com/en/4.2/topics/settings/
For the full list of settings and their values, see
https://docs.djangoproject.com/en/4.2/ref/settings/
"""
from pathlib import Path
import os
# https://zhuanlan.zhihu.com/p/427491751
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/4.2/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = "django-insecure-3(67ok*ri0-d+n9^o)^)zzun=unhc4-prs301#hmeu0i1bo=@k"
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = []
# Application definition
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
'app' # 添
]
MIDDLEWARE = [
"django.middleware.security.SecurityMiddleware",
"django.contrib.sessions.middleware.SessionMiddleware",
"django.middleware.common.CommonMiddleware",
# "django.middleware.csrf.CsrfViewMiddleware",
"django.contrib.messages.middleware.MessageMiddleware",
"django.middleware.clickjacking.XFrameOptionsMiddleware",
]
ROOT_URLCONF = "WhereToGo.urls"
TEMPLATES = [ # 看到这里,请在App目录下创建一个文件叫做templates
{
"BACKEND": "django.template.backends.django.DjangoTemplates",
"DIRS": [BASE_DIR / 'templates'], #目录
"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",
],
},
},
]
WSGI_APPLICATION = "WhereToGo.wsgi.application"
# Database
# https://docs.djangoproject.com/en/4.2/ref/settings/#databases
# 数据库~
DATABASES = {
"default": {
"ENGINE": "django.db.backends.mysql", #修改
"NAME": "WhTGInfos",
'User': 'root',
'PASSWORD': 'root',
'HOST': 'localhost', #本机
'port': '3306' # 端口
}
}
# Password validation
# https://docs.djangoproject.com/en/4.2/ref/settings/#auth-password-validators
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",
},
]
# Internationalization
# https://docs.djangoproject.com/en/4.2/topics/i18n/
LANGUAGE_CODE = "zh-hans" # 设置中文语言
TIME_ZONE = "Asia/Shanghai" # 时区
USE_I18N = True
USE_LION = True # 时间属性|一个布尔值,用于决定是否开启数据本地化。如果此设置为True,例如Django将使用当前语言环境的格式显示数字和日期。
USE_TZ = True
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/4.2/howto/static-files/
STATIC_URL = "/static/" # static 为根目录
STATICFILES_DIRS = { # 定义额外的静态文件搜索地址。
os.path.join(BASE_DIR, 'static') # os.path.join():路径拼接文件路径,可以传入多个路径| BASE_DIR:django的根目录
}
MEDIA_URL = '/media/' # 指向media文件
MEDIA_ROOT = os.path.join(BASE_DIR, 'media') # 用户上传的文件所在目录的,文件系统绝对路径,即文件上传到哪了~
# Default primary key field type
# https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-field
DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
文件配置完~来运行一下吧~
python3 manage.py runserver 0.0.0.0:8000
遇到报错可以检查下是不是对应的包没有安装 | control + C 中止项目运行
【报错1:Did you install mysqlclient?】
【解决:django项目 - _init_.py 中添加代码】
import pymysql
pymysql.version_info = (1, 4, 13, "final", 0)
pymysql.install_as_MySQLdb()
【报错2】
?: (staticfiles.E001) The STATICFILES_DIRS setting is not a tuple or list.
HINT: Perhaps you forgot a trailing comma?
【解决】settings.py中配置静态文件路径时在结尾加逗号
STATIC_URL = "/static/", # static 为根目录
【报错3:】
?: (admin.E408) 'django.contrib.auth.middleware.AuthenticationMiddleware' must be in MIDDLEWARE in order to use the admin application.
?: (admin.E409) 'django.contrib.messages.middleware.MessageMiddleware' must be in MIDDLEWARE in order to use the admin application.
?: (staticfiles.E001) The STATICFILES_DIRS setting is not a tuple or list.
HINT: Perhaps you forgot a trailing comma?
他说缺少我就加
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",
]
# E001
STATICFILES_DIRS = [ # 定义额外的静态文件搜索地址。
os.path.join(BASE_DIR, 'static'),
]