当前位置:   article > 正文

python之django连接已有SQLserver简单实例创建_django读取已有sqlserver

django读取已有sqlserver
	python之django连接已有SQLserver简单实例创建
作为初学者,记录下自己的摸索过程,与也正在学习的同伴分享。环境为windwos7。
  • 1
  • 2

一、设置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,
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
很多其他的博客,在这里做了很多功夫,诸如backends不存在的连接方式。
2,控制台命令“python manage.py inspectdb”,接着“python manage.py insepctdb>models”,运行完之后数据库中的表都在根目录下的models中建好类了。
  • 1
  • 2

到此时之后的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!!!!!!!!!!!!!!!!')

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/597996
推荐阅读
相关标签
  

闽ICP备14008679号