一、新建项目
python ->django web 项目 (选择带bootstrap风格与twwriter)
项目名称
iepiececomputing (ie计件计算)
跳出窗体 -> 添加虚拟环境 -(vs2017 自动下载环境 )

一路确定

安装完后输出
You are using pip version 18.1, however version 19.0.3 is available.
----- 已成功安装“-r D:\code\IEPieceWorkComputin\IEPieceComputin\requirements.txt” -----

“requirements.txt”已成功安装。

A、安装pymysql
点击 python环境下evn节点,右键,选择安装python包
输入pymysql
点击下方出现的 pip install pymysql命令既可
可参见
https://www.cnblogs.com/wortliu/p/9237753.html

B、在iepiececomputing目录下找到 settings.py

将database改为

DATABASES = {
#'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
#}
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '127.0.0.1',
'PORT': '3306',
'NAME': 'databasename',
'USER': 'root',
'PASSWORD': 'zjshizhu123',
}
}

INSTALLED_APPS 下增加

'IEPieceComputing',

C、在iepiececomputing目录下找到 __init__.py (在与项目同名包的__init__下添加)
添加代码
import pymysql
pymysql.install_as_MySQLdb()

D、在 环境 env(python 3.7 64bit) 上点右键 选择在文件管理器中打开 然后打开
Lib\site-packages\django\db\backends\mysql目录 最终地址
D:\code\IEPieceComputing\IEPieceComputing\env\Lib\site-packages\django\db\backends\mysql
找到base.py文件

注解掉
#if version < (1, 3, 13):

# raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)

找到operation.py 146 147行注解掉
#if query is not None:
#  query = query.decode(errors='replace')
python3以上版本没有decode了..

E、添加数据模型
右键点击解决方案,选择在此处打开命令提示行,主要是看manage.py文件在哪个目录下

1、如果已经在MySql中建好了表使用
python manage.py inspectdb

2、如果已经在App/models.py中建好了表使用
python manage.py migrate

3、忘记了命令
python manage.py help

本次在MySQL中已经建好一个表叫DataCommon
同时又在app/models.py里面建了一个模型叫
class Employee(models.Model):
name=models.CharField(max_length=20)同时测试1与2。结果还是满意的

下面是执行顺序
D:\code\IEPieceComputing\IEPieceComputing>python manage.py makemigrations
Migrations for 'app':
app\migrations\0001_initial.py
- Create model Datacommon
- Create model Employee

D:\code\IEPieceComputing\IEPieceComputing>python manage.py migrate
Operations to perform:
Apply all migrations: admin, app, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying app.0001_initial... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying auth.0010_alter_group_name_max_length... OK
Applying auth.0011_update_proxy_permissions... OK
Applying sessions.0001_initial... OK

D:\code\IEPieceComputing\IEPieceComputing>python manage.py createsuperuser
用户名 (leave blank to use 'riland.0605'): riland
电子邮件地址: abcde@qq.com
Password:
Password (again):
密码长度太短。密码必须包含至少 8 个字符。
这个密码太常见了。
密码只包含数字。
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.

备注,进行上述操作的时候,出现了三个杂音(错误或是问题),每一次都不顺利

第一个, python manage.py migrate 提示
File "D:\code\IEPieceComputing\IEPieceComputing\env\lib\site-packages\django\db\backends\mysql\operations.py", line 146, in last_executed_query
query = query.decode(errors='replace')
AttributeError: 'str' object has no attribute 'decode'
原因为pymysql模块比较老,decode已经在python3中没有该方法了
按上述操作直接注解掉
解决完了又提示第二个

第二个python manage.py migrate 提示
#?: (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.
#
看了一下英文文档在

https://docs.djangoproject.com/en/1.11/ref/contrib/admin/
visual studio 2017在settings.py 生成的变量名是
MIDDLEWARE_CLASSES
而要求的变量名为MIDDLEWARE
直接拷一份,重命名。就好了

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',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
]

第三个,提示django.contrib.auth.views.login等views 不存在
直接在urls.py中注解掉,不用再意,这也是vs2017提示了 # Examples: ....意思就是照着这个样子写..

E、启用Admin模块,上述建好了表与用户下面就直接启用admin模块,
找到urls.py 将此行
# url(r'^admin/', include(admin.site.urls)),
前的#去掉即可
此处也有比较详细的讲解
https://code.ziqiangxuetang.com/django/django-admin.html

小试VS 2017 开发Python Django项目过程一的更多相关文章

  1. Python(Django)项目与Apache的管理

    (开开心心每一天~ ---虫瘾师) Python(Django)项目交给Apache的管理(一) 准备:Django的环境(Python).Apache.Wsgi(必须文件) 首先需要电脑有Pytho ...

  2. Python(Django)项目与Apache的管理交互

    (开开心心每一天~ ---虫瘾师) Python(Django)项目交给Apache的管理(一) 准备:Django的环境(Python).Apache.Wsgi(必须文件) 首先需要电脑有Pytho ...

  3. 使用Visual Studio 2017开发python,并在iis上部署Python Django

    作为宇宙第一IDE,怎么可以不支持python开发呢? 1.Visual Studio Installer 扩展Python开发 开始菜单中打开Visual Studio Installer,点修改. ...

  4. 使用Nginx+uwsgi在亚马逊云服务器上部署python+django项目完整版(二)——部署配置及相关知识

    ---恢复内容开始--- 一.前提: 1.django项目文件已放置在云服务器上,配置好运行环境,可正常运行 2.云服务器可正常连接 二.相关知识 1.python manage.py runserv ...

  5. Python Django项目日志查询系统

    该项目适合中小型公司日志查询工作.大型公司可以使用elk等.该系统其实就是调用了absible命令去查日志,然后把输出的信息输到页面查看. 日志查询系统 维护手册 作者:陈土锋 日期:2020年6月1 ...

  6. Python Django项目部署 Linux 服务器

    项目依赖: Linux Centos7 (阿里云轻量级服务器) + Python 3.7.2 + Django 2.2.1 + restframework 3.9.4 + mysql 5.7 1 安装 ...

  7. python - django 项目部署 Ubuntu 服务器后接口访问一直 502 问题

    问题描述:最近有了一台 Ubuntu 的服务器,然后准备部署个项目,结果没想到部署的过程跟用 Centos 的时候还有点不一样,最后一步我是卡在了 uwsgi 这里,访问一直502,且可以访问项目的静 ...

  8. python django项目创建及前期准备(使用pycharm)

    一.创建django项目 1.打开pycharm软件 2.点击菜单栏 File-->New Project,弹出如下对话框,如下图设置 二.基本配置 1.静态文件目录配置(用于客户端访问后台服务 ...

  9. Linux下开发python django程序(设置admin后台管理上传文件和前台上传文件保存数据库)

    1.项目创建相关工作参考前面 2.在models.py文件中定义数据库结构 import django.db import modelsclass RegisterUser(models.Model) ...

随机推荐

  1. c++_benchMark_vector_list_deque

    title: c++_benchMark_vector_list_deque date: 2015-08-01 22:32:39 作者:titer1 + ZhangYu 出处:www.drysalte ...

  2. Qt5的插件机制(1)--Qt 框架中的插件载入机制概述

    概述 Qt的源代码中通过 Q<pluginType>Factory.Q<pluginType>Plugin 和 Q<pluginType> 这三个类实现了Qt的插件 ...

  3. POJ3370&amp;HDU1808 Halloween treats【鸽巢原理】

    题目链接: id=3370">http://poj.org/problem?id=3370 http://acm.hdu.edu.cn/showproblem.php?pid=1808 ...

  4. zookeeper应用场景练习(分布式锁)

    在寻常的高并发的程序中.为了保证数据的一致性.因此都会用到锁.来对当前的线程进行锁定.在单机操作中.非常好做到,比方能够採用Synchronized.Lock或者其它的读写多来锁定当前的线程.可是在分 ...

  5. TCO14 1B L3: EagleInZoo, dp,tree

    题目:http://community.topcoder.com/stat?c=problem_statement&pm=13117&rd=15950 看到树,又是与节点有关,通常是d ...

  6. xp秘钥

    TDCXC-M9FW9-3HQ28-CPXYR-YXQ3QCCBDF-9W9T8-K8B7M-83HJM-X2MCWP3MF6-BTDKT-KR7YF-X4BM9-4HD9TMCCWF-42JGF-W ...

  7. lightoj--1214--Large Division(大数取余)

    Large Division Time Limit: 1000MS   Memory Limit: 32768KB   64bit IO Format: %lld & %llu Submit ...

  8. MySQL格式化日期参数

    MySQL格式化日期参数 %a 缩写星期名 %b 缩写月名 %c 月,数值 %D 带有英文前缀的月中的天 %d 月的天,数值(00-31) %e 月的天,数值(0-31) %f 微秒 %H 小时 (0 ...

  9. IHttpHandler的学习(0-2)

    这个IHttpHandler,要想到asp.net生命周期 ,想到哪个从你发起请求开始,这个请求通过HttpModule------>IHttpHandler的: 执行HttpModule的一系 ...

  10. PostgreSQL相关总结

    源码安装PostgreSQL总结 简明安装步骤(其中prefix指定PostgreSQL的安装目录,该目录与数据目录pgdata和PostgreSQL的源代码包目录均无关) yum -y instal ...