第一步:
创建工程 cmd 进入你想保存的位置:django-admin startproject MxOnline
第二步:
models设计 python manage.py startapp users 建立用户信息模块
python manage.py startapp hisinfor 建立信息模块
2.1.users 用户
自定义userProfile
系统自动生成的user表如下
id: 主键,
password 密码,
last_login Django自动记录用户最后登录时间,。
is_superuser 表明用户是否是超级用户(后台管理会用到)。
username 用户名字段不要随便改动,
firstname 性
lastname 名
email 邮箱,
is_staff 表示是否是员工(后台管理会用到)。
is_active 用户是否是激活状态,
date_joined 注册时间。
共11条信息
2.2若要扩展user表,添加需要的字段
# users/models.py
from django.dbimport models
from django.contrib.auth.modelsimport AbstractUser
class UserProfile(AbstractUser):
gender = models.CharField('性别',max_length=10,choices=(('male','男'),('female','女')),default='female')
adress = models.CharField('地址',max_length=100,default='')
mobile = models.CharField('手机号',max_length=11,null=True,blank=True)
image = models.ImageField(upload_to='image/%Y%m',default='image/default.png',max_length=100)
class Meta:
verbose_name ='用户信息'
verbose_name_plural = verbose_name
def __str__(self):
return self.username
然后做下面的一些设置
因为Image字段需要用到pillow所以需要安装该库
pip install pillow
2.3.注册app
INSTALLED_APPS=[
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'users'] (settings.py)
将'users'添加进去
2.5 重载AUTH_USER_MODEL
AUTH_USER_MODEL='users.UserProfile' (settings.py)
2.6 设计数据库为Mysql
# DATABASES={
#'default':{
#'ENGINE':'django.db.backends.sqlite3',
#'NAME':os.path.join(BASE_DIR,'db.sqlite3'),
#}
#}
DATABASES={
'default':{'
ENGINE':'django.db.backends.mysql',
'NAME':'work',#数据库名字
'USER':'root',#账号
'PASSWORD':'root',#密码,根据自己sql账号填写
'HOST':'127.0.0.1',#IP
'PORT':'3306',#端口
}
}
2.7 init.py里面导入pymysql模块
# user/__init__.py
import py mysql
pymysql.install_as_MySQLdb()
2.8 迁移数据库
python manage.py makemigrations
python manage.py migrate
若用pycharm可直接通过tools然后 run manage
若需验证码的话:可见:
https://cloud.tencent.com/developer/artice/1091377
2.9 接下来建立舆情信息模块
在hisinfor/models里面:
from users.modelsimport UserProfile
class Hisinfor(models.Model):
name = models.CharField('基金名称',max_length=20)
num = models.CharField('基金编号',max_length=11)
course_name = models.CharField('信息',max_length=50)
add_time = models.DateTimeField('添加时间',default=datetime.now)
class Meta:
verbose_name ='舆情信息'
verbose_name_plural = verbose_name
def __str__(self):
return self.name
2.10 在settings里将hisinfor添加进去
然后继续迁移数据库
python manage.py makemigrations
python manage.py migrate
2.11 .把两个app放到一个文件夹
创建package: apps
把之前的四个app全部剪切到apps包里面
不要选“Search for references”
去掉searchfor的勾选。拖进去之后会报错,说找不到那些import的模块了。
解决方案:右键Mark为sourceRoot。根目录下找不到的,会去apps下搜索。
但是这时候cmd下还是会报错。需要在settings设置
import os
import sys
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0,os.path.join(BASE_DIR,'apps'))
在settings最上方
再运行就可以成功启动了
此时目录: