13、python_django_web开发_创建在线教育izengzhi爱增值平台项目及技术细节准备_笔记
export WORKON_HOME=~/Desktop/virtual_envs_works/ source /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh 把export命令和source命令,加入到~/.bash_profile,就无需重复初始化了 用pycharm创建Django项目 解释器选择 interpreter 虚拟环境里的 创建mysql数据库: 字符集:uft8—UTF8 Unicode 排序规则:utf8_general_ci 数据库名:dfy999_db Html文件存放在 各自应用下 templates/应用名/ Css js 图片文件 存放在 static/下 在settings最下面有 日志文件 log/ 用户的上传文件 media/ uploads/ App多了以后 所有app都存放在 apps/ 引入需要加apps.XXX 也可以将 apps目录 mark一下 为Source Root Mark只是会让pycharm不会报错 如果命令行方式运行 还是会报错,此时就需要 修改settings里面的 配置apps当做我们的根搜索路径 配置数据库mysql 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'dfy999_db', 'USER': 'root', 'PASSWORD': 'root', 'HOST': '127.0.0.1', } 启动manage.py Tools 后会报错: Error loading MySQLdb module: No module named MySQLdb. Did you install mysqlclient or MySQL-python? 进入虚拟环境 安装驱动 pip install mysql-python MySQL-python (1.2.5) 成功后 makemigration migrate 就可以看到表了 mysql数据库中 settings.py里面的: TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates' STATIC_URL = '/static/' STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static') 这种设置方法是 没有把html模板文件放到各自的app中的 不像之前的:开发第一个Template: 1、在app根目录下创建名为templates的目录 字符编码的错误解决:可以在py文件的开头写上 # _*_ coding:utf-8 _*_ 指定u8的编码 # -*- coding: utf-8 -*- models中类 的子类 class Meta: 属性可以有: verbose_name = u’’ db_table= “user_table” 指定数据表的名称 而不是自动生成appname_类名 Ordering=“-object_id” 根据字段进行倒序 verbose_name_plural = verbose_name 'AutoField', 'BLANK_CHOICE_DASH', 'BigAutoField', 'BigIntegerField', 'BinaryField', 'BooleanField', 'CharField', 'CommaSeparatedIntegerField', 'DateField', 'DateTimeField', 'DecimalField', 'DurationField', 'EmailField', 'Empty', 'Field', 'FieldDoesNotExist', 'FilePathField', 'FloatField', 'GenericIPAddressField', 'IPAddressField', 'IntegerField', 'NOT_PROVIDED', 'NullBooleanField', 'PositiveIntegerField', 'PositiveSmallIntegerField', 'SlugField', 'SmallIntegerField', 'TextField', 'TimeField', 'URLField', 'UUIDField', Debug run 可以打断点 objects.get() objects.all() objects.filter(name=XXX , age=XXX) and的条件 objects.create() save() delete() {% ifequal %} {% endifequal %}
|