seever majazi



به خاطر چارچوب وب آزاد و منبع باز که در پايتون نوشته شده است ، Django امکان مقياس پذيري ، قابليت استفاده مجدد و توسعه سريع را فراهم مي آورد.
در اين آموزش مي بينيد که چگونه پايه و اساس اوليه يک سايت وبلاگي با اتصال به يک پايگاه داده MySQL را تنظيم کنيد. اين امر شامل ايجاد ساختار اسکلت برنامه وبلاگ با استفاده از django-admin ، ايجاد بانک اطلاعاتي MySQL و سپس اتصال برنامه وب به ديتابيس خواهد بود.
توجه داشته باشيد که اين امر محيط توسعه را براي شما فراهم مي کند تا بتوانيد در برنامه وبلاگ خود کار کنيد ، اما شما بايد قبل از اينکه وبلاگ خود را به صورت زنده در اينترنت قرار دهيد ، کارهاي ديگري انجام دهيد ، نام هاي دامنه را تعيين و لايه هاي امنيتي بيشتري اضافه کنيد.
پيش نيازها
بايد يک محيط Python در سرور مجازي خود تنظيم کنيد. در اين آموزش ، ما از سرور مجازي اوبونتو 20.04 استفاده خواهيم کرد ، اما از آنجا که تمرکز اين آموزش بر روي Django است ، اين اصول بايد براي ساير سيستم عامل ها نيز کاربرد داشته باشد.
براي راه اندازي پايتون ، آموزش نحوه نصب پايتون 3 و تنظيم يک محيط برنامه نويسي را در سرور مجازي اوبونتو 20.04 دنبال کنيد.
با قرارگيري پايتون در جاي خود ، مي توانيم به سراغ ايجاد برنامه خود برويم.
مرحله 1 – MySQL را نصب کنيد
ما از MySQL به عنوان بانک اطلاعاتي خود استفاده خواهيم کرد. ممکن است شما بخواهيد از بانک اطلاعاتي ديگري استفاده کنيد يا از قبل يک پايگاه داده نصب کرده باشيد ، در اين صورت بايد اين مرحله را رد کنيد.
براي نصب MySQL در سرور مجازي Ubuntu 20.04 ، دستور زير را تايپ کنيد:
? $ sudo apt install mysql-server
?
بايد خروجي زير را دريافت کنيد:
Output
? mysql.service – MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-05-07 20:22:51 UTC; 3min 7s ago
Main PID: 2052 (mysqld)
Status: “Server is operational”
Tasks: 38 (limit: 1137)
Memory: 317.4M
CGroup: /system.slice/mysql.service
??2052 /usr/sbin/mysqld


اطمينان حاصل کنيد که بازخورد دريافتي بيانگر فعال بودن سرور مجازي MySQL شماست. پس از تاييد اين موضوع ، مي توانيد اين آموزش را ادامه دهيد.
مرحله 2 – اسکلت اوليه پروژه Django را ايجاد کنيد
به منظور ايجاد زمينه کاري براي برنامه خود ، بايد اسکلت پروژه را با استفاده از دستور django-admin توليد کنيم. اين پروژه توليد شده پايه و اساس برنامه وبلاگ ما خواهد بود.
به دايرکتوري برويد که مي خواهيد برنامه وبلاگ خود را بسازيد. در اين ديرکتوري ، يک ديرکتوري خاص براي ساخت برنامه ايجاد خواهيم کرد. براي برنامه اي که در حال ساخت هستيد ، نام ديرکتوري را چيزي معني دار در نظر بگيريد. به عنوان نمونه ، ما آن را my_blog_app مي ناميم.
? $ mkdir my_blog_app
?
اکنون به پوشه تازه ايجاد شده برويد:
? $ cd my_blog_app
?
در مرحله بعد ، وارد محيط برنامه نويسي شويد که مي خواهيد براي کار در Django استفاده کنيد. مي توانيد از يک ديرکتوري موجود استفاده کنيد يا يک ديرکتوري جديد ايجاد کنيد. ما ديرکتوري خود را env مي ناميم ، اما شما بايد از اسمي استفاده کنيد که براي شما معني دارد. پس از ايجاد ، مي توانيد آن را فعال کنيد.
? $ python3 -m venv env
?
? . env/bin/activate
اگر قبلا Django را نصب نکرده ايد ، آن را در اين محيط نصب کنيد:
? (env) Sammy@ubuntu:$ pip install django
?
در حالي که در ديرکتوري my_blog_app هستيم، با اجراي دستور زير ، پروژه اي را توليد مي کنيم:
? (env) Sammy@ubuntu:$ django-admin startproject blog
?
با رفتن به دايرکتوري blog/ تأييد کنيد که کار کرده است:
? (env) Sammy@ubuntu:$ cd blog
?


دايرکتوريblog/ بايد پس از اجراي دستور قبلي django-admin در دايرکتوري فعلي ، ~ / my_blog_app / ايجاد شود.
براي تأييد اينکه موارد لازم ايجاد شده است ، ls را اجرا کنيد. بايد يک ديرکتوري وبلاگ و يک فايل management.py وجود داشته باشد:
Output
blog manage.py


اکنون که دايرکتوري پروژه را ايجاد کرده ايد که شامل شروع اوليه برنامه وبلاگ شماست ، مي توانيم به مرحله بعدي برويم.
مرحله 3 – تنظيمات را ويرايش کنيد
از آنجا که ما پروژه اسکلت را توليد کرده ايم ، اکنون يک فايل settings.py داريم.
براي اينکه وبلاگ ما زمان صحيحي با ناحيه ما ارتباط داشته باشد ، فايل settings.py را ويرايش مي کنيم تا از منطقه زماني فعلي شما استفاده کند. مي توانيد از اين ليست مناطق زماني به عنوان مرجع استفاده کنيد. به عنوان مثال ، ما از وقت America/New_York استفاده خواهيم کرد.
مي خواهيم فايل را ويرايش کنيم ، بنابراين بياييد مسير فايل را با ويرايشگر متن مورد نظر خود باز کنيم. در اينجا ، ما از nano استفاده خواهيم کرد.
? (env) Sammy@ubuntu:$ nano ~/my_blog_app/blog/blog/settings.py
?
از آنجا که ما در حال ويرايش قسمت TIME_ZONE هستيم ، مانند زير به قسمت پايين فايل خواهيم رفت.
settings.py

# Internationalization
# https://docs.djangoproject.com/en/2.0/topics/in/


LANGUAGE_CODE = ‘en-us’


TIME_ZONE = ‘UTC’


USE_IN = True


USE_L10N = True


USE_TZ = True

ما مي خواهيم خط TIME_ZONE را طوري تغيير دهيم که در منطقه زماني فعلي شما تنظيم شود. در اين مثال از منطقه زماني نيويورک استفاده خواهيم کرد:
settings.py

# Internationalization
# https://docs.djangoproject.com/en/2.0/topics/in/


LANGUAGE_CODE = ‘en-us’


TIME_ZONE = ‘America/New_York’


USE_IN = True


بياييد فايل را باز نگه داريم زيرا بايد مسيري را براي فايل هاي استاتيک خود اضافه کنيم. فايلهايي که از برنامه وب Django شما دريافت مي شوند به فايل هاي استاتيک شناخته مي شوند. اين فايل ها مي تواند شامل تمام فايل هاي لازم براي ارائه کامل صفحه وب از جمله JavaScript ، CSS و تصاوير باشد.
به انتهاي فايل تنظيمات برويد و مطابق شکل زير STATIC_ROOT را اضافه کنيد:
settings.py

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.0/howto/static-files/


STATIC_URL = ‘/static/’
STATIC_ROOT = os.path.join(BASE_DIR, ‘static’)


اکنون که منطقه زماني و مسير فايل هاي استاتيک را اضافه کرده ايم ، بايد IP بعدي خود را به ليست هاست هاي مجاز اضافه کنيم. به خط فايل settings.pyبرويد. جايي که ALLOWED_HOSTS نوشته شده، در قسمت بالاي فايل settings.py خواهد بود.
settings.py

# SECURITY WARNING: don’t run with debug turned on in production!
DEBUG = True


ALLOWED_HOSTS = [‘your server IP address’]


# Application definition


آدرس IP سرور مجازي خود را بين براکت و علامت تک نقل قول اضافه کنيد.
پس از رضايت از تغييراتي که ايجاد کرده ايد ، فايل را ذخيره کنيد. اگر در حال استفاده از nano هستيد ، مي توانيد اين کار را با فشار دادن CTRL + X و سپس y براي تأييد تغييرات انجام دهيد.
شما فايل settings.pyخود را با موفقيت ويرايش کرده ايد تا منطقه زماني مناسب پيکربندي شده باشد. همچنين مسير فايل هاي استاتيک خود را اضافه کرده ايد و آدرس IP را براي برنامه خود ALLOWED_HOST قرار داده ايد.
در آخر ، اجازه دهيد يک کاربر ادمين ايجاد کنيم تا بتوانيد از رابط مدير Djano استفاده کنيد. بياييد اين کار را با دستور Creatuperuser انجام دهيم:
? (me_env) $ python manage.py createsuperuser
?
از شما يک نام کاربري ، يک آدرس ايميل و رمز عبور براي کاربر خواسته مي شود.
در اين مرحله مي توانيم به تنظيم اتصال بانک اطلاعاتي خود بپردازيم.
مرحله 4 – اتصال دهنده پايگاه داده MySQL را نصب کنيد
براي استفاده از MySQL با پروژه خود ، به يک کتابخانه اتصال دهنده پايگاه داده Python 3 که سازگار با Django است ، نياز خواهيم داشت. بنابراين ، ما اتصال ديتابيس را نصب خواهيم کرد ، mysqlclient ، که يک نسخه forked از MySQLdb است.
ابتدا اطمينان حاصل کنيد که python3-dev را نصب کرده ايد. با اجراي دستور زير مي توانيد python3-dev را نصب کنيد:
? (env) Sammy@ubuntu:$ sudo apt install python3-dev
?
اکنون مي توانيم هدرها و كتابخانه هاي توسعه Python و MySQL را نصب كنيم:
? (env) Sammy@ubuntu:$ sudo apt install python3-dev libmysqlclient-dev default-libmysqlclient-dev
?


براي پذيرش نصب ، y و ENTER را فشار دهيد.
پس از اتمام نصب ، از pip3 براي نصب کتابخانه mysqlclient از PyPi استفاده خواهيم کرد. از آنجا که نسخه pip به pip3 اشاره مي کند ، مي توانيم از pip استفاده کنيم.
? (env) Sammy@ubuntu:$ pip install mysqlclient
?
خروجي مشابه اين را دريافت خواهيد کرد ، تأييد ميکند که به درستي در حال نصب است:
successfully installed mysqlclient

Successfully installed mysqlclient-1.4.6
اکنون با استفاده از کتابخانه اتصال دهنده mysqlclient PyPi با موفقيت MySQL را نصب کرديم.
مرحله 5 – ايجاد بانک اطلاعاتي
اکنون که اسکلت برنامه Django شما راه اندازي شده است و mysqlclient و mysql-server نصب شده اند ، بايد براي سازگاري MySQL ، backend Django را پيکربندي کنيم.
به صورت ريشه MySQL با دستور زير وارد شويد:
? (env) Sammy@ubuntu:$ sudo mysql -u root
?
وقتي اعلان تغيير مي کند مي دانيم که در سرور مجازي MySQL قرار داريم:
Mysql>
بگذاريد پايگاه داده هاي فعلي را با دستور زير بررسي کنيم:
? Mysql> SHOW DATABASES;
?
با فرض اينکه هنوز هيچ پايگاه داده اي ايجاد نکرده ايد ، خروجي مشابه زير را مشاهده خواهيد کرد:
Output
+——————–+
| Database |
+——————–+
| information_schema |
| mysql |
| performance_schema |
| sys |
+——————–+
4 rows in set (0.00 sec)


توجه: اگر هنگام تلاش براي اتصال با خطايي مواجه شديد ، تأييد کنيد که رمزعبورتان درست است و MySQL را به درستي نصب کرده ايد. در غير اينصورت آموزش نحوه نصب و پيکربندي MySQL را دوباره مرور کنيد.


به طور پيش فرض ، شما 4 پايگاه داده را تاکنون ايجاد کرده ايد ، data_schema ، MySQL ، performance_schema و sys. نيازي به اتصال به اين موارد نداريم ، زيرا حاوي اطلاعاتي مهم براي خود سرور مجازي MySQL هستند.
اکنون ، که با موفقيت به سرور مجازي MySQL خود وارد شده ايد ، بانک اطلاعاتي اوليه را ايجاد مي کنيم که داده ها را براي وبلاگ مان نگه مي دارد.
براي ايجاد يک پايگاه داده در MySQL ، دستور زير را با استفاده از يک اسم معني دار براي پايگاه داده خود اجرا کنيد:
? Mysql> CREATE DATABASE blog_data;
?
پس از ايجاد موفقيت آميز پايگاه داده ، خروجي زير را مشاهده خواهيد کرد:
Output
Query OK, 1 row affected (0.00 sec)
توجه: اگر خروجي زير را مشاهده مي کنيد:
database creation failed
ERROR 1007 (HY000): Can’t create database blog_data; database exists


يعني ، همانطور که خطا بيان مي کند ، يک بانک اطلاعاتي با نام blog_data از قبل وجود دارد.
و اگر خطاي MySQL زير را مشاهده کرديد ، به اين معني است که يک خطاي نحوي MySQL وجود دارد. بررسي کنيد که فرمان را دقيقاً مطابق با اين آموزش وارد کرده ايد.
database creation failed
ERROR 1064 (42000): You have an error in your SQL syntax;


سپس ، تأييد کنيد که اکنون پايگاه داده در ليست پايگاههاي داده موجود شما قرار دارد:
? $ SHOW DATABASES;
?
بايد ببينيد که پايگاه داده blog_data در ميان پايگاه داده هاي موجود در خروجي است:
output
+——————–+
| Database |
+——————–+
| information_schema |
| blog_data |
| mysql |
| performance_schema |
| sys |
+——————–+
5 rows in set (0.00 sec)


در مرحله بعد ، قصد داريم يک حساب کاربري MySQL جداگانه ايجاد کنيم که ما بطور انحصاري براي کار با بانک اطلاعات جديد خود استفاده خواهيم کرد. ايجاد بانکهاي اطلاعاتي و حسابهاي خاص مي تواند ما را از منظر مديريتي و امنيتي پشتيباني کند. ما در اين راهنما از نام djangouser استفاده خواهيم کرد ، اما شما ميتوانيد از هر نامي استفاده کنيد.
ما قصد داريم اين حساب را ايجاد کنيم ، رمزعبور راتنظيم کنيم و به ديتابيس ايجاد شده دسترسي پيدا کنيم. مي توانيم با تايپ دستور زير اين کار را انجام دهيم. به ياد داشته باشيد يک رمزعبور قوي براي کاربر پايگاه داده خود در جايي که password را داريم انتخاب کنيد:
? Mysql> CREATE USER ‘djangouser’@’%’ IDENTIFIED WITH mysql_native_password BY ‘password’;
?
در مرحله بعد ، به ديتابيس اطلاع دهيد که djangouser ما بايد دسترسي کامل به ديتابيسي که ايجاد ميکنيم داشته باشد:
? Mysql> GRANT ALL ON blog_data.* TO ‘djangouser’@’%’;
?
اکنون يک بانک اطلاعاتي و يک حساب کاربري داريد که هرکدام به طور خاص براي Django ساخته شده است. بايد امتيازات را flush کنيم تا نمونه فعلي MySQL از تغييرات اخير ما اطلاع يابد:
? Mysql> FLUSH PRIVILEGES;
?
با اتمام آن ، مي توانيد با وارد کردن EXIT يا با فشار دادن CTRL + D از سرور مجازي MySQL خارج شويد.
مرحله 6 – اتصال پايگاه داده MySQL را به برنامه خود اضافه کنيد
سرانجام ، اعتبارات اتصال بانک اطلاعاتي را به برنامه Django شما اضافه خواهيم کرد.
توجه: لازم است به ياد داشته باشيد که تنظيمات اتصال ، مطابق مستندات Django ، به ترتيب زير استفاده مي شوند:
OPTIONS
– NAME, USER, PASSWORD, HOST, PORT
– MySQL option files.
بياييد تغييرات لازم را براي اتصال برنامه وبلاگ Django به MySQL ايجاد کنيم.
به فايل settings.py برويد و خطوط فعلي DATABASES را با موارد زير جايگزين کنيد. ما ديکشنري پايگاه داده شما را پيکربندي خواهيم کرد تا بداند که از MySQL به عنوان backend ديتابيس شما استفاده کند و از چه فايلي براي خواندن اعتبارات اتصال بانک اطلاعاتي شما استفاده کند.
? (env) Sammy@ubuntu:$ nano ~/my_blog_app/blog/blog/settings.py
?
خطوط موجود را در آنجا پاک کرده و آن را با خطوط زير جايگزين کنيد ، حتماً تعداد مناسب پرانتز را حفظ کنيد.
settings.py

# Database
# https://docs.djangoproject.com/en/3.0/ref/settings/#databases


DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’,
‘OPTIONS’: {
‘read_default_file’: ‘/etc/mysql/my.cnf’,
},
}
}


فايل را ذخيره کنيد و ببنديد.
سپس ، اجازه دهيد فايل پيکربندي را ويرايش کنيم تا اعتبارات MySQL شما را داشته باشد. براي ويرايش فايل و افزودن اطلاعات زير از nano به عنوان sudo استفاده کنيد:
? (env) Sammy@ubuntu:$ sudo nano /etc/mysql/my.cnf
?
خطوط زير را اضافه کنيد و اطلاعات مربوط به خود را درج کنيد.
my.cnf

[client]
database = blog_data
user = djangouser
password = your_actual_password
default-character-set = utf8


توجه خواهيد کرد که utf8 به عنوان رمزگذاري پيش فرض تنظيم شده است ، که يک روش معمول براي رمزگذاري داده هاي تک کد در MySQL است. وقتي مطمئن شديد که جزئيات شما صحيح است ، فايل را ذخيره کنيد و ببنديد.
پس از ويرايش فايل ، لازم است که MySQL را مجدداً راه اندازي کنيم تا تغييرات به مرحله اجرا درآيند.
? (env) Sammy@ubuntu:$ sudo systemctl daemon-reload
?
? (env) Sammy@ubuntu:$ sudo systemctl restart mysql


لطفاً توجه داشته باشيد که راه اندازي مجدد MySQL چند ثانيه طول مي کشد ، بنابراين لطفاً صبور باشيد.
مرحله 7 – اتصال MySQL به برنامه را آزمايش کنيد
لازم است تأييد کنيم که تنظيمات موجود در Django سرور مجازي MySQL را به درستي تشخيص مي دهد. ما مي توانيم اين کار را با اجراي سرور مجازي انجام دهيم. در صورت عدم موفقيت ، اين بدان معني است که اتصال به درستي کار نمي کند. در غير اين صورت ، اتصال معتبر است.
بياييد ابتدا تغييرات خود را در django با دستور زير اعمال کنيم:
? (env) Sammy@ubuntu:$ python manage.py migrate
?
بايد به ديرکتوري زير برويم:
? (env) Sammy@ubuntu:$ cd ~/my_blog_app/blog/
?
از آنجا ، مي توانيم دستور زير را اجرا کنيم:
? (env) Sammy@ubuntu:$ python manage.py runserver your-server-ip:8000
?
اکنون خروجي مشابه زير را مشاهده خواهيد کرد:
Output
Performing system checks…


System check identified no issues (0 silenced).


You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run ‘python manage.py migrate’ to apply them.


January 4, 20 – 15:45:39
Django version 2.0.1, using settings ‘blog.settings’
Starting development server at http://your-server-ip:8000/
Quit the server with CONTROL-C.


توجه: در خروجي خواهيد ديد که جابه جايي هاي بي رويه داشته ايد. اما نگران نباشيد ، در آموزش هاي بعدي به اين موضوع پرداخته مي شود. اين مسئله بر تنظيم اوليه برنامه ما تأثير نمي گذارد. لطفا پيش برويد.


دستورالعمل هاي خروجي را دنبال کنيد و پيوند پيشنهادي ، http: // your-server-ip: 8000 / را دنبال کنيد تا برنامه وب خود را مشاهده کنيد و تأييد کنيد که به درستي کار مي کند.


اگر صفحه شما شبيه به تصوير بالا ظاهر مي شود ، برنامه Django شما مطابق آنچه انتظار مي رود کار مي کند!
هنگامي که آزمايش برنامه تان به پايان رسيد ، مي توانيد CTRL + C را فشار دهيد تا دستور Runnerver متوقف شود. با اين کار شما به محيط برنامه نويسي خود باز خواهيد گشت.
هنگامي که آماده ترک محيط Python خود هستيد ، مي توانيد دستور غيرفعال کردن را اجرا کنيد:
? (env) Sammy@ubuntu:$ deactivate
?
غيرفعال کردن محيط برنامه نويسي شما را به سمت فرمان نهايي ترمينال باز مي گرداند.
نتيجه
در اين آموزش پايه و اساس اوليه وبلاگ Django خود را ايجاد کرده ايد. MySQL را نصب و پيکربندي کرده و به backend Django وصل کرده ايد. همچنين برخي از اطلاعات مهم مانند TIME_ZONE و ALLOWED_HOSTS را به فايل تنظيمات برنامه خود اضافه کرده ايد.
اکنون که اين تنظيمات و پيکربندي هاي اوليه کامل شده است ، مي توانيد شروع به توسعه مدل ها و اعمال برنامه هاي جابه جايي در برنامه Django خود کنيد.


خريد vps – خريد سرور مجازي – خريد سرور – سرور هلند – فروش vps – سرور مجازي آمريکا – خريدvps – سرور مجازي هلند – فروش سرور مجازي – سرور آمريکا – vps – سرور مجازي انگليس – سرور مجازي آلمان – سرور مجازي کانادا – خريد vps آمريکا – خريد وي پي اس – سرور – خريد سرور مجازي هلند – vps خريد – سرور مجازي فرانسه – سرور مجازي هلند – خريد vps آمريکا – خريد سرور مجازي ارزان هلند – vps – خريد vps هلند – خريد سرور مجازي آمريکا – خريد vps فرانسه – تست vps – سرور مجازي تست – سرور مجازي ويندوز – ارزانترين vps – خريد وي پي اس – vps ارزان – 


آخرین ارسال ها

آخرین جستجو ها


الو مشاوره لوفی جامع المزخرفات moshavereh-khanevade shabnamekhialc فناوری و پشتیبانی برای ابزار تشخیصی خودرو marziehgraphicnews conftwischopsno طراحی کاتالوگ و چاپ کاتالوگ آن waterenekas