python之django连接已有SQLserver简单实例创建

	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!!!!!!!!!!!!!!!!')

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值