一、新建项目
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. 转载:爱加密邀您参加5月17日深圳App开发沙龙活动

    听闻,移动互联网的九大门派已集结在一起,各路顶尖高手携App修炼宝典九阴真经现身,一场席卷全国的App修炼风暴即将来临.5月17日,以“移动开发者如何白手起家.快速盈利”为主题的沙龙活动将在深圳市南山 ...

  2. 阿里云X-Forwarded-For 发现tomcat记录的日志所有来自于SLB转发的IP地址,不能获取到请求的真实IP。

    1.背景:阿里云的SLB的负载均衡,在tomcat中获取不到真实IP,而是阿里的内网IP,SLB中俩台或者3台本身是局域网,这里是SLB原理,能够看看.没怎么看懂.呵呵,要细细读下. 2.须要开启to ...

  3. 用html语言写一个功课表

    今天在网上看了一个关于html的教程,主要是讲表格,看完之后认为有必要上机试试.于是就写了以下的一段代码. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvb ...

  4. angularjs 缓存 $q

    <!DOCTYPE HTML> <html ng-app="myApp"> <head> <meta http-equiv="C ...

  5. ConfigurationSection

    https://msdn.microsoft.com/en-us/library/system.configuration.configurationsection(v=vs.110).aspx Re ...

  6. 131.typename在嵌套类中的作用

    #include <iostream> using namespace std; class myit { public: static int num; class itit { }; ...

  7. 基于分布式的短文本命题实体识别之----人名识别(python实现)

    目前对中文分词精度影响最大的主要是两方面:未登录词的识别和歧义切分. 据统计:未登录词中中文姓人名在文本中一般只占2%左右,但这其中高达50%以上的人名会产生切分错误.在所有的分词错误中,与人名有关的 ...

  8. CUDA还未产出,又要出北洋多元统计习题集

    其实目前是自己摸清了一个套路.genome realign的算法,以及CUDA的写法都已经有数了,前两天也弄完了关静的所有任务.但是今天关静早上一上来就宣布一个重磅消息:除了全学期的作业和期末论文,另 ...

  9. [转载]-分布式之redis复习精讲

    原创地址:https://www.cnblogs.com/rjzheng/p/9096228.html 看这篇文章前,我看的是另一个人博客上的文章.看到最后(评论这一块)很多人就指出这并非原创而是抄袭 ...

  10. wpf convert png to xaml

    原文:wpf convert png to xaml 把png图片转化成xaml资源 <ResourceDictionary xmlns="http://schemas.microso ...