Insert کردن داده در جانگو

python

#1

سلام دوستان من با جانگو یه مدل ساختم و الان هم میخوام که به صورت یک جا اطلاعات داخلش قرار بدم
ولی وقتی با کتابخانه sqlite3 به دیتابسی که با جانگو ساختم کانکت کنم میگه که همچین tableوجود نداره
الان چطور به این دیتابیس اطلاعات خودمو Insert کنم
البته روش پنل جانگو رو میدونم ولی من یه اسکریپت نوستم که بعضی اطلاعات رو میگره و میخوام به صورت هم زمان توی دیتابیس دخیره کنه


#2

خوب قبل از هرچیزی یه سوال:
چرا از دیتابیسهای بهتر استفاده نمیکنید؟

نمیخوام بگم sqlite بده. میگم که برای این جور پروژه‌ها ساخته نشده.
زمانی که شما یک اپلیکیشن کوچیک دارید و قراره تحت دسکتاپ اجرا بشه و فقط یک کاربر در هر لحظه باهاش کار کنه، sqlite گزینه‌ی مناسبیه. کوچیک و سبکه.
ولی زمانی که وبسایت درست میکنید، بهتره از دیتابیسهای بزرگتر و کاملتر استفاده کنید. دیتایبسی که لود بیشتری تحمل کنه و البته قابلیتهای بیشتری داشته باشه. مثلا mysql (یا بهتره بگیم mariadb) یا postgresql.


برای حل مشکلتون:
احتمالش زیاد هست که اصلا نرم‌افزارتون نتونسته فایل sqlite رو پیدا کنه.
همونطور که میدونید، دیتابیس sqlite بر مبنای فایل هست. یعنی مثلا دیتابیس mydata.db به صورت یک فایل باینری روی هارد سیستم ساخته میشه.
و برای دسترسی به این دیتابیس باید آدرسش رو به این شکل توی اسکریپت پایتون بزنیم:

import sqlite3
conn = sqlite3.connect('mydata.db')
conn.execute('''CREATE TABLE ...''')
conn.close()

یا اگه داخل همین پوشه (که اسکریپت پایتون ما قرار داره) نیست، باید آدرس relative بهش بدیم:

conn = sqlite3.connect('../databases/mydata.db')
# or
conn = sqlite3.connect('./databases/mydata.db')

یا آدرس کامل. مثل:

conn = sqlite3.connect('/home/<username>/<projectname>/databases/mydata.db')

که این قضیه‌ی آدرس دادن، اگه کاربر ویندوز هستید، خیلی سختتر میشه (ویندوز کلا با آدرسهای relative مشکل داره)


در کل پیشنهاد میکنم از دیتابیسهایی مثل mysql یا pgsql استفاده کنید. روش کار اینها یک مقدار فرق میکنه.
این دیتابیسها یک نرم‌افزار هستن که روی سیستم نصب و اجرا میشن و همیشه در حال اجرا (در بکگراند) هستن.
و اسکریپت ما میتونه از طریق یک سوکت بهشون متصل بشه و کوئریها رو ارسال کنه و نتیجه رو دریافت کنه.
البته برای اتصال بهشون نیاز به یه لایبرری جداگانه داریم که باید توسط pip نصب بشه و بعد توی نرم‌افزارمون import بشه.

import pymysql
conn = pymysql.connect('localhost',
                       'db_username',
                       'db_password',
                       'database_name')

برای نصب mysql یا pgsql با توجه به سیستم عاملتون، آموزشهای زیادی توی اینترنت هست. اگه سوالی داشتید درخدمتیم.
توی مراحل نصب، db_username و db_password رو خودتون تعیین میکنید و یه دیتابیس با نام دلخواه میسازید که توی پروژتون بتونید استفاده کنید.
همونطور که میدونید، localhost یعنی همین کامپیوتری که روش هستیم و میشه گفت برابر با آی پی 127.0.0.1 هست.


#3

واقعا ممنون از راهنمای شما
الان میخوام به my sql وصلش کنم
ولی وقتی کتابخانه mysqlclient رو نصب میکنم این خطا رو میده ``Collecting mysqlclient
Using cached https://files.pythonhosted.org/packages/f4/f1/3bb6f64ca7a429729413e6556b7ba5976df06019a5245a43d36032f1061e/mysqlclient-1.4.2.post1.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File “”, line 1, in
File “/private/var/folders/y7/yjj6q4gd46s80sv8w0yzjg340000gn/T/pip-install-7sl4y_d2/mysqlclient/setup.py”, line 16, in
metadata, options = get_config()
File “/private/var/folders/y7/yjj6q4gd46s80sv8w0yzjg340000gn/T/pip-install-7sl4y_d2/mysqlclient/setup_posix.py”, line 53, in get_config
libraries = [dequote(i[2:]) for i in libs if i.startswith(’-l’)]
File “/private/var/folders/y7/yjj6q4gd46s80sv8w0yzjg340000gn/T/pip-install-7sl4y_d2/mysqlclient/setup_posix.py”, line 53, in
libraries = [dequote(i[2:]) for i in libs if i.startswith(’-l’)]
File “/private/var/folders/y7/yjj6q4gd46s80sv8w0yzjg340000gn/T/pip-install-7sl4y_d2/mysqlclient/setup_posix.py”, line 12, in dequote
raise Exception(“Wrong MySQL configuration: maybe https://bugs.mysql.com/bug.php?id=86971 ?”)
Exception: Wrong MySQL configuration: maybe https://bugs.mysql.com/bug.php?id=86971 ?`


#4

من زمپ رو هم نصب کردم و به درستی در حال اجرا هستش الان فقط مشکل این کتابخانه هستش
سیستم عامل من هم مک هستش


#5

pymysql نمیشه وصلش کرد


#6

خوب زمپ فقط بخش mysql به دردتون میخوره. بقیش برای توسعه‌ی php هست.
درمورد مک اصلا اطلاعات ندارم و پیغام خطایی که اینجا نوشتید هم خوندنش خیلی سخته. از اینجا میتونید درمورد markdown اطلاعات بیشتری کسب کنید و در کل برای این مدل متنهای طولانی که برای نمایش ارور یا لاگ هست، بهتره اونها رو توی یکی از سرویسهای pastbin رایگانی که توی اینترنت هست کپی کنید. مثلا https://paste.ubuntu.com

پیشنهاد میکنم صبر کنید دوستانی که با مک آشنایی دارن بیان ببینن مشکل چیه.
تنها چیزی که به ذهنم میرسه اینه که اگه از virtualenv استفاده نمیکنید، حتما ازش استفاده کنید. (ربطی به این پروژه یا این مشکل نداره. همیشه باید ازش استفاده کرد)
ورژن پایتون و pip سیستمتون رو هم بگید تا پیدا کردن مشکل راحتتر بشه.

پیشنهاد دیگه‌ای که دارم اینه که از یه سیستم عامل مناسب برای برنامه نویسی مثلا یکی از توضیعهای لینوکس استفاده کنید.
اینطوری حداقل کنترل همه چیز دست خودتونه.


#7

باشه ممنون