View Full Version : سوال: ارتباط پایتون با MySQL
|Smyty|
یک شنبه 20 تیر 1389, 14:47 عصر
کسی در این مورد اطلاعاتی داره ... ؟
طی یک ماه گذشته به نتایجی رسیدم. اما اساتید بگن بهتره ...
Mehdi Asgari
یک شنبه 20 تیر 1389, 14:50 عصر
سوالت رو درست مطرح کن. چی میخوای بدونی ؟
teta_amir
یک شنبه 20 تیر 1389, 17:13 عصر
اگه ميشه دوستان لطف كنن و طريقه ارتباط بين پايتون و پايگاه داده هاي مختلف مثل اوراكل ، ماي اس كيو ال و اكسس رو بگن
eshpilen
یک شنبه 20 تیر 1389, 19:37 عصر
اگر برای اپلیکیشن یا سایتی نیاز به امکانات دیتابیس و SQL محدودی داری، میتونی از ماجول و موتور دیتابیس SQLite استفاده کنی که بصورت پیشفرض روی پایتون هست (من مستندات نسخهء 3.1.1 پایتون رو نگاه کردم البته) و نیاز به هیچ چیز اضافه و کار خاصی نداره.
در رابطه با MySQL هم با یه سرچ سرسری مثلا اینو رو دیدم: http://sourceforge.net/projects/mysql-python/
اما متاسفانه ظاهرا برای پایتون 3 نیست و ممکنه مجبور باشید از نسخه های قدیمی تر پایتون استفاده کنید (ظاهرا هنوز کاملا متداول هستن).
|Smyty|
دوشنبه 21 تیر 1389, 00:02 صبح
بله، تا حدودی صحیح ! امروز در programmingforums پرسیدم بصورت کاملا ژیگولانه جواب دادن جناب DaWei
دقیقا اینکه می خوام یک برنامه خیلی ساده پایتون رو با یک دیتابیس بسیار ساده تر MySQL ارتباط بدم. تا اونجا که اساتید پایتون در pythonforums گفتن، با MsSQL نمیشه. همون MySQL جواب میده :D
theinfinity
دوشنبه 21 تیر 1389, 02:34 صبح
سوال واقعا خوبی پرسیدین! الان خیلیا دنبال اینن که پایتون رو انتخاب کنن و دنبال نقاط ضعف و قوت پایتونن، که این موضوع باعث میشه یه جنبه پایتون روشن تر بشه!
یه مدت پیش دنبال همین مطلب بودم، کلی سرچ کردم تا رسیدم به این ماژول: MySQLdb
http://www.kitebird.com/articles/pydbapi.html
واقعا ضعیفه، خیلی دیر به روز میشه،باید نصب بشه و به معنای واقعیه کلمه نابوده
اوضاع بقیه rdms ها بجز sqlite تقریبا همیجوریه(تا اونجایی که من اطلاع دارم)
http://docs.djangoproject.com/en/dev/ref/databases/
توی django چک کردم شاید حرکت خوبی باشه ولی ...
وقتی این سوال رو دیدم یه سرچ تو python manual زدم وقتی جملات پایین رو دیدم فهمیدم چرا اینجا می لنگه!
Data persistence
Data persistence, while sounding very complicated is just about storing data. This data might be the text of blog entries, the postings of a bulletin board or the text of a wiki page. As always, there are different ways to store informations on a web server.
Often relational database engines like MySQL or PostgreSQL are used due to their good performance handling very large databases consisting of up to millions of entries. These are queried using a language called SQL. Python programmers in general do not like SQL too much, they prefer to work with objects. It is possible to save Python objects into a database using a technology called ORM. ORM translates all object-oriented access into SQL code under the hood, the user does not need to think about it. Most frameworks use ORMs and it works quite well.
A second possibility is using files that are saved on the hard disk (sometimes called flatfiles). This is very easy, but is not too fast. There is even a small database engine called SQLite which is bundled with Python in the sqlite module and uses only one file. This database can be used to store objects via an ORM and has no other dependencies. For smaller sites SQLite is just enough. But it is not the only way in which data can be saved into the file systems. Sometimes normal, plain text files are enough.
The third and least used possibility are so-called object oriented databases. These databases store the actual objects instead of the relations that OR-mapping creates between rows in a database. This has the advantage that nearly all objects can be saven in a straightforward way, unlike in relational databases where some objects are very hard to represent with ORMs.
Frameworks often give the users hints on which method to choose, it is usually a good idea to stick to these unless there are some special requirements which require to use the one method and not the other.
See also
Persistence Tools lists possibilities on how to save data in the file system, some of these modules are part of the standard library
Database Programming helps on choosing a method on how to save the data
SQLAlchemy, the most powerful OR-Mapper for Python and Elixir which makes it easier to use
SQLObject, another popular OR-Mapper
ZODB and Durus, two object oriented databases
فک نکنم نیاز به توضیح بیشتری باشه، ولی همونجوری که یکی از بچه ها گفت sqlite3 بصورت پیش فرض روی پایتون هست که البته به دلایلی که اینجا جاش نیس نمیتونه جای mysql یا oracle رو پر کنه و نبود ماژول مناسب برای ارتباط با اونا یه نقطه ضعف به حساب میاد!
eshpilen
دوشنبه 21 تیر 1389, 09:44 صبح
البته پایتون تا جایی که یادمه امکان استفاده مستقیم از کتابخانه های سی و تبدیل انواع داده ای بین پایتون و سی رو داره. برای ارتباط با MySQL هم یک کتابخانه رسمی تحت سی وجود داره. بنابراین فکر میکنم مشکل خاصی در ارتباط دادن پایتون و MySQL نباشه غیر از اینکه کدهاش کثیف و حجیم و پیچیده تر از کدهای مختصر و خوانای پایتون میشه. احتمالا میتونید یک Wrapper موردی و محدود براش درست کنید تا کارتون کمی راحتتر و تمیزتر بشه.
بنده حتی توی اسمبلی هم از کتابخانه های رابط MySQL با موفقیت استفاده کردم، اونوقت توی پایتون نمیشه؟!!
وقتی کارتون هم اینقدر محدود هست بنظرم بتونه کارتون رو راه بندازه.
esmaeily-hosein
پنج شنبه 09 دی 1389, 22:58 عصر
سوال واقعا خوبی پرسیدین! الان خیلیا دنبال اینن که پایتون رو انتخاب کنن و دنبال نقاط ضعف و قوت پایتونن، که این موضوع باعث میشه یه جنبه پایتون روشن تر بشه!
یه مدت پیش دنبال همین مطلب بودم، کلی سرچ کردم تا رسیدم به این ماژول: MySQLdb
http://www.kitebird.com/articles/pydbapi.html
واقعا ضعیفه، خیلی دیر به روز میشه،باید نصب بشه و به معنای واقعیه کلمه نابوده
اوضاع بقیه rdms ها بجز sqlite تقریبا همیجوریه(تا اونجایی که من اطلاع دارم)
http://docs.djangoproject.com/en/dev/ref/databases/
توی django چک کردم شاید حرکت خوبی باشه ولی ...
وقتی این سوال رو دیدم یه سرچ تو python manual زدم وقتی جملات پایین رو دیدم فهمیدم چرا اینجا می لنگه!
پروژه های open - source کلا همینجوریه .
وقتی python نسخه جدید میده، دلیل نمیشه که فردا تمام library هاش با نسخه جدید سازگار بشه .
اگر این اتفاق می افتاد دیگه نسخه دو را پشتیبانی نمیکرد. معمولا این library ها بیشتر توسط یک نفر نوشته شده .
البته من خودم همیشه از PostgreSql به همراه py-postgresql (http://python.projects.postgresql.org/)
استفاده میکنم که برای نسخه 3 نوشته شده است.
franchesco
جمعه 10 دی 1389, 06:41 صبح
دوست عزیز شما اگه قصد کار با دیتابیس رو دارین از بایند پایتون برای Qt استفاده کنین ! به همه جور دیتابیسی میشه وصل شد و در طراحی فرم هم به شما کمک میکنه .
franchesco
جمعه 10 دی 1389, 08:23 صبح
اینم از کتابخانه کار با mysql
لینک دانلود :
http://sourceforge.net/projects/mysql-python/
یادگیری طریقه اتصال :
http://mysql-python.sourceforge.net/MySQLdb.html
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.