赞
踩
python之django连接已有SQLserver简单实例创建
作为初学者,记录下自己的摸索过程,与也正在学习的同伴分享。环境为windwos7。
一、设置python系统变量、创建文件夹、venv环境
博客没有小剪刀截图 甚是麻烦,尽量就手敲。
1,在系统变量中添加‘D:\python64\’,这是我的python安装目录。
2,新建放置django的文件夹,比如‘F:\mytest’。
3,启动CMD,cd 到 'F:\mytest。
命令一:python -m venv myven 创建名为myven的环境
二,安装django以及依赖包
1,依然CMD,cd 到 'F:\mytest。“myven\scripts\activate”激活django的环境,“pip install django”, “pip install pyodbc”,“pip install django-pyodbc-azure” ,这里尽量分开pip,因为安装django-pyodbc-azure时,会自动选择合适的django版本,你将会看到它自行卸载django并安装合适的django版本。
这里很多小伙伴包括我都入过坑,什么提示backends错误,在配置settings的时候可没少费劲。
三,新建django项目,新建app
此时已经可以打开pycharm,用控制台命令Terminal。
此时还有一个小坑,直接“python django-admin startproject myproject .”是不行的,因为你这个django-admin.py 没有设置为系统变量,所以就直接把myven里面(自己找吧)的django-admin.py复制到 “F:\mytest”下面。然后控制台输入“python django-admin.py startproject myproject .”即可,这里命令最后有一个点,不要忘掉,记不清怎么回事了,反正要带上。
然后“python manage.py startapp myapp” 新建了一个myapp。
四,连接到已经存在的数据库。
当然这里也可以migrate迁移一个新的数据库,咱现在是连接到一个老数据库。
1,设置django的settings ,到这里不能光靠记忆写了,得copy代码。
'default': {
'ENGINE': 'sql_server.pyodbc',
'NAME': 'yourdatabase',
'USER': 'sa',
'PASSWORD': ',123456',
'HOST': '127.0.0.1',
'PORT': '1433',
'OPTIONS': {
'driver': 'SQL Server Native Client 11.0',
'MARS_Connection': True,
很多其他的博客,在这里做了很多功夫,诸如backends不存在的连接方式。
2,控制台命令“python manage.py inspectdb”,接着“python manage.py insepctdb>models”,运行完之后数据库中的表都在根目录下的models中建好类了。
到此时之后的views,url,html 就可以参照其他django实例来了。
好,就到这吧。除了代码截图,其他都是记忆写的,可能会出现疏漏,但大体步骤是错不了了。
------------- 开开启django时,使用0.0.0.0:xxxx,作为ip和端口 例如:python manage.py runserver 0.0.0.0:9000 然后在settings里修改ALLOWED_HOSTS= [], 改为ALLOWED_HOSTS= ['*',],注意不要漏掉“,”。 其他机器就可以通过这台机器的ip和端口号访问django了 celery 定时任务: ##celery.py from celery.schedules import crontab from datetime import timedelta app.conf.update( CELERYBEAT_SCHEDULE = { 'taska': { 'task': 'login.tasks.add', 'schedule': timedelta(seconds=3), 'args': () } } ) ##settings CELERY_ENABLE_UTC = True CELERY_TIMEZONE = 'Asia/Shanghai' CELERY_BROKER_URL = 'redis://localhost:6379' CELERY_RESULT_BACKEND = 'redis://localhost:6379' CELERY_ACCEPT_CONTENT = ['application/json'] CELERY_RESULT_SERIALIZER = 'json' CELERY_TASK_SERIALIZER = 'json' CELERY_MAX_TASKS_PER_CHILD = 10 CELERY_IMPORTS = ("login.tasks",) 另外pip install eventlet ####app中tasks.py from celery import shared_task from login import views @shared_task def add(): views.test_a() print('111111111111') ####views.py 防止任务未完成时重复执行 from celery_once import QueueOnce @celery_app.task(base=QueueOnce, once={'graceful': True}) def test_a(): time.sleep(10) print('done!!!!!!!!!!!!!!!!')
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。