当前位置: 移动技术网 > IT编程>脚本编程>Python > 小试VS 2017 开发Python Django项目过程一

小试VS 2017 开发Python Django项目过程一

2019年04月05日  | 移动技术网IT编程  | 我要评论

解元,360选本大师,美丽派邪恶漫画全集

一、新建项目
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

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网